diff options
Diffstat (limited to 'os-plugins/plugins/vmchooser/OpenSLX/OSPlugin/vmchooser.pm')
-rw-r--r-- | os-plugins/plugins/vmchooser/OpenSLX/OSPlugin/vmchooser.pm | 62 |
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; + |