summaryrefslogtreecommitdiffstats
path: root/os-plugins/plugins/vmchooser/OpenSLX/OSPlugin/vmchooser.pm
diff options
context:
space:
mode:
Diffstat (limited to 'os-plugins/plugins/vmchooser/OpenSLX/OSPlugin/vmchooser.pm')
-rw-r--r--os-plugins/plugins/vmchooser/OpenSLX/OSPlugin/vmchooser.pm62
1 files changed, 61 insertions, 1 deletions
diff --git a/os-plugins/plugins/vmchooser/OpenSLX/OSPlugin/vmchooser.pm b/os-plugins/plugins/vmchooser/OpenSLX/OSPlugin/vmchooser.pm
index 406e18e6..adbc5557 100644
--- a/os-plugins/plugins/vmchooser/OpenSLX/OSPlugin/vmchooser.pm
+++ b/os-plugins/plugins/vmchooser/OpenSLX/OSPlugin/vmchooser.pm
@@ -39,8 +39,9 @@ sub getInfo
return {
description => unshiftHereDoc(<<' End-of-Here'),
allows user to pick from a list of different virtual machine images
+ based on xml-files, which tell about available images.
End-of-Here
- mustRunAfter => [],
+ mustRunAfter => []
};
}
@@ -72,4 +73,63 @@ sub getAttrInfo
};
}
+
+sub installationPhase
+{ # called while chrooted to the vendor-OS root in order to give the plugin
+ # a chance to install required files into the vendor-OS.
+ my $self = shift;
+
+ my $pluginRepositoryPath = shift;
+ # The folder where the stage1-plugin should store all files
+ # required by the corresponding stage3 runlevel script.
+ # As this method is being executed while chrooted into the vendor-OS,
+ # this path is relative to that root (i.e. directly usable).
+ my $pluginTempPath = shift;
+ # A temporary playground that will be cleaned up automatically.
+ # As this method is being executed while chrooted into the vendor-OS,
+ # this path is relative to that root (i.e. directly usable).
+ my $openslxPath = shift;
+ # the openslx base path bind-mounted into the chroot (/mnt/openslx)
+
+ # for this example plugin, we simply create two files:
+ spitFile("$pluginRepositoryPath/right", "(-;\n");
+ spitFile("$pluginRepositoryPath/left", ";-)\n");
+
+ # Some plugins have to copy files from their plugin folder into the
+ # vendor-OS. In order to make this possible while chrooted, the host's
+ # /opt/openslx folder will be mounted to /mnt/openslx in the vendor-OS.
+ # So each plugin could copy some files like this:
+ #
+
+ # get our own name:
+ my $pluginName = $self->{'name'};
+
+
+ # get our own base path:
+ my $pluginBasePath = "/mnt/openslx/lib/plugins/$pluginName";
+
+ # copy all needed files now:
+ foreach my $file ( qw( vmchooser ) ) {
+ copyFile("$pluginBasePath/$file", "$pluginRepositoryPath/");
+ }
+
+ # name of current os
+ # $self->{'os-plugin-engine'}->{'vendor-os-name'}
+
+ return;
+}
+
+sub removalPhase
+{ # called while chrooted to the vendor-OS root in order to give the plugin
+ # a chance to uninstall no longer required files from the vendor-OS.
+ my $self = shift;
+ my $pluginRepositoryPath = shift;
+ # the repository folder, relative to the vendor-OS root
+ my $pluginTempPath = shift;
+ # the temporary folder, relative to the vendor-OS root
+
+ return;
+}
+
1;
+