diff options
Diffstat (limited to 'src/os-plugins/plugins/emufe/OpenSLX/OSPlugin/emufe.pm')
-rw-r--r-- | src/os-plugins/plugins/emufe/OpenSLX/OSPlugin/emufe.pm | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/src/os-plugins/plugins/emufe/OpenSLX/OSPlugin/emufe.pm b/src/os-plugins/plugins/emufe/OpenSLX/OSPlugin/emufe.pm new file mode 100644 index 00000000..4ef09e5e --- /dev/null +++ b/src/os-plugins/plugins/emufe/OpenSLX/OSPlugin/emufe.pm @@ -0,0 +1,139 @@ +# Copyright (c) 2011 - RZ Uni Freiburg +# Copyright (c) 2011 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# emufe.pm +# - Declares necessary information for the emufe plugin +# ----------------------------------------------------------------------------- +package OpenSLX::OSPlugin::emufe; + +use strict; +use warnings; + +use base qw(OpenSLX::OSPlugin::Base); + +use File::Basename; +use File::Path; + +use OpenSLX::Basics; +use OpenSLX::Utils; +use OpenSLX::DistroUtils; + +sub new +{ + my $class = shift; + my $self = { + name => 'emufe', + }; + + return bless $self, $class; +} + +sub getInfo +{ + my $self = shift; + + return { + description => unshiftHereDoc(<<' End-of-Here'), + Module for enabling selection of emulators via the vmchooser plugin + and mount a content directory if required. Mostly dummy functionality. + End-of-Here + precedence => 70, + required => [ qw( vmchooser ) ], + }; +} + +sub getAttrInfo +{ + # Returns a hash-ref with information about all attributes supported + # by this specific plugin + my $self = shift; + + # This default configuration will be added as attributes to the default + # system, such that it can be overruled for any specific system by means + # of slxconfig. + return { + # attribute 'active' is mandatory for all plugins + 'emufe::active' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + should the 'emufe'-plugin be executed during boot? + End-of-Here + content_regex => qr{^(0|1)$}, + content_descr => '1 means active - 0 means inactive', + default => '1', + }, + # attribute 'imagesrc' defines where we can find the different emulator + # images + 'emufe::imagesrc' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + Where should the vm images be stored? NFS? Filesystem? + End-of-Here + #TODO: check if the input is valid + #content_regex => qr{^(0|1)$}, + content_descr => 'Allowed values: local path or URI', + default => '', + }, + + }; +} + +sub installationPhase +{ + my $self = shift; + my $info = shift; + + $self->{pluginRepositoryPath} = $info->{'plugin-repo-path'}; + $self->{pluginTempPath} = $info->{'plugin-temp-path'}; + $self->{openslxBasePath} = $info->{'openslx-base-path'}; + $self->{openslxConfigPath} = $info->{'openslx-config-path'}; + $self->{attrs} = $info->{'plugin-attrs'}; + + my $engine = $self->{'os-plugin-engine'}; + my $pluginRepoPath = $info->{'plugin-repo-path'}; + my $openslxBasePath = $info->{'openslx-base-path'}; + + # Copy run-virt.include and template files to the appropriate place for + # inclusion in stage4 + my $pluginName = $self->{'name'}; + my $pluginBasePath = "$openslxBasePath/lib/plugins/$pluginName/files"; + foreach my $file ( qw( run-virt.include ) ) { + copyFile("$pluginBasePath/$file", "$pluginRepoPath/"); + } + + # not needed yet (all emulators run in userspace) + #my $initFile = newInitFile(); + #$initFile->setName("emufe"); + #$initFile->setDesc("Setup environment for different emulators"); + + return; +} + +sub removalPhase +{ + my $self = shift; + my $info = shift; + + return; +} + +sub checkStage3AttrValues +{ + my $self = shift; + my $stage3Attrs = shift; + my $vendorOSAttrs = shift; + + return; +} + +1; |