diff options
Diffstat (limited to 'os-plugins/plugins/virtualbox/OpenSLX')
5 files changed, 0 insertions, 497 deletions
diff --git a/os-plugins/plugins/virtualbox/OpenSLX/Distro/Base.pm b/os-plugins/plugins/virtualbox/OpenSLX/Distro/Base.pm deleted file mode 100644 index d26cdfcc..00000000 --- a/os-plugins/plugins/virtualbox/OpenSLX/Distro/Base.pm +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright (c) 2009 - 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/ -# ----------------------------------------------------------------------------- -# virtualbox/OpenSLX/Distro/Base.pm -# - provides base implementation of the Distro API for the VirtualBox plugin. -# ----------------------------------------------------------------------------- -package virtualbox::OpenSLX::Distro::Base; - -use strict; -use warnings; - -our $VERSION = 1.01; # API-version . implementation-version - -use Scalar::Util qw( weaken ); - -use OpenSLX::Basics; -use OpenSLX::Utils; - -################################################################################ -### interface methods -################################################################################ -sub new -{ - my $class = shift; - my $self = {}; - return bless $self, $class; - -} - -sub initialize -{ - my $self = shift; - $self->{engine} = shift; - weaken($self->{engine}); - # avoid circular reference between plugin and its engine - - return 1; -} - -sub installVbox -{ - my $self = shift; - - my $engine = $self->{'engine'}; - - # lets try it... we can't loose anything :) - $engine->installPackages('virtualbox-ose'); - - return; -} - -1; diff --git a/os-plugins/plugins/virtualbox/OpenSLX/Distro/Debian.pm b/os-plugins/plugins/virtualbox/OpenSLX/Distro/Debian.pm deleted file mode 100644 index edd117ca..00000000 --- a/os-plugins/plugins/virtualbox/OpenSLX/Distro/Debian.pm +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright (c) 2009 - 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/ -# ----------------------------------------------------------------------------- -# virtualbox/OpenSLX/Distro/debian.pm -# - provides Debian-specific overrides of the Distro API for the VirtualBox -# plugin. -# ----------------------------------------------------------------------------- -package virtualbox::OpenSLX::Distro::Debian; - -use strict; -use warnings; - -use base qw(virtualbox::OpenSLX::Distro::Base); - -use OpenSLX::Basics; -use OpenSLX::Utils; - -################################################################################ -### interface methods -################################################################################ - -sub installVbox -{ - my $self = shift; - - my $engine = $self->{'engine'}; - my $release = `lsb_release -rs`; - chomp($release); - - # lenny(5.0) has v1.6 - # testing is ok. but no clue which lsb_release -rs it has... - if ( $release eq "999999.0") { - #the usual "in stage1 chroot we get another kernel vers. problem" - # kernel modules need to be installed from the cloned system - #$engine->installPackages('virtualbox-ose'); - #system('/etc/init.d/virtualbox-ose setup'); - } else { - print "Couldn't install VirtualBox, no package from distribution\n"; - exit; - } - - return; -} - -1; diff --git a/os-plugins/plugins/virtualbox/OpenSLX/Distro/Suse.pm b/os-plugins/plugins/virtualbox/OpenSLX/Distro/Suse.pm deleted file mode 100644 index 9af3191e..00000000 --- a/os-plugins/plugins/virtualbox/OpenSLX/Distro/Suse.pm +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright (c) 2009 - 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/ -# ----------------------------------------------------------------------------- -# virtualbox/OpenSLX/Distro/Suse.pm -# - provides SUSE specific overrides of the distro API for the VirtualBox -# plugin. -# ----------------------------------------------------------------------------- -package virtualbox::OpenSLX::Distro::Suse; - -use strict; -use warnings; - -use base qw(virtualbox::OpenSLX::Distro::Base); - -use OpenSLX::Basics; -use OpenSLX::Utils; - -################################################################################ -### interface methods -################################################################################ - -sub installVbox -{ - my $self = shift; - - my $engine = $self->{'engine'}; - # should be replaced by proper function - my $release = `lsb_release -rs`; - chomp($release); - - if ( $release eq "11.1" || $release eq "11.0" || $release eq "10.3") { - $engine->installPackages('virtualbox-ose'); - } else { - print "Couldn't install VirtualBox, no package from distribution\n"; - exit; - } - - return; -} - -1; diff --git a/os-plugins/plugins/virtualbox/OpenSLX/Distro/Ubuntu.pm b/os-plugins/plugins/virtualbox/OpenSLX/Distro/Ubuntu.pm deleted file mode 100644 index 44695680..00000000 --- a/os-plugins/plugins/virtualbox/OpenSLX/Distro/Ubuntu.pm +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright (c) 2008 - 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/ -# ----------------------------------------------------------------------------- -# virtualbox/OpenSLX/Distro/Ubuntu.pm -# - provides Ubuntu-specific overrides of the Distro API for the virtualbox -# plugin. -# ----------------------------------------------------------------------------- -package virtualbox::OpenSLX::Distro::Ubuntu; - -use strict; -use warnings; - -# inherit everything from Debian (as Ubuntu is based on it anyway) -use base qw(virtualbox::OpenSLX::Distro::Debian); -use base qw(virtualbox::OpenSLX::Distro::Base); - -use OpenSLX::Basics; -use OpenSLX::Utils; - - -################################################################################ -#### interface methods -################################################################################ -sub installVbox -{ - my $self = shift; - - my $engine = $self->{'engine'}; - my $release = `lsb_release -rs`; - chomp($release); - - # hardy (8.04LTS): only version VBox v1.5 - if ( $release eq "8.10" || $release eq "9.04") { - #the usual "in stage1 chroot we get another kernel vers. problem" - # kernel modules need to be installed from the cloned system - #$engine->installPackages("virtualbox-ose"); - #system('/etc/init.d/virtualbox-ose setup'); - } else { - print "Couldn't install VirtualBox, no package from distribution!\n"; - exit; - } - - - return; -} - -1; diff --git a/os-plugins/plugins/virtualbox/OpenSLX/OSPlugin/virtualbox.pm b/os-plugins/plugins/virtualbox/OpenSLX/OSPlugin/virtualbox.pm deleted file mode 100644 index 07ec9dc0..00000000 --- a/os-plugins/plugins/virtualbox/OpenSLX/OSPlugin/virtualbox.pm +++ /dev/null @@ -1,284 +0,0 @@ -# Copyright (c) 2009..2010 - RZ Uni Freiburg -# Copyright (c) 2009..2010 - 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/ -# ----------------------------------------------------------------------------- -# virtualbox.pm -# - declares necessary information for the virtualbox plugin -# ----------------------------------------------------------------------------- -package OpenSLX::OSPlugin::virtualbox; - -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 => 'virtualbox', - }; - - return bless $self, $class; -} - -sub getInfo -{ - my $self = shift; - - return { - description => unshiftHereDoc(<<' End-of-Here'), - Module for enabling services for the VirtualBox on an OpenSLX - stateless client. - End-of-Here - precedence => 70, - # headless mode does not require a desktop! - #required => [ qw( desktop ) ], - }; -} - -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 - 'virtualbox::active' => { - applies_to_systems => 1, - applies_to_clients => 1, - description => unshiftHereDoc(<<' End-of-Here'), - should the 'virtualbox'-plugin be executed during boot? - End-of-Here - content_regex => qr{^(0|1)$}, - content_descr => '1 for active, 0 for inactive', - default => '1', - }, - # attribute 'imagesrc' defines where we can find virtualbox images - 'virtualbox::imagesrc' => { - applies_to_systems => 1, - applies_to_clients => 1, - description => unshiftHereDoc(<<' End-of-Here'), - Where do we store our virtualbox images? NFS? Filesystem? - End-of-Here - content_regex => qr{^(/|nfs://)}, - content_descr => 'local path or URI or "-" (unset)', - default => undef, - }, - # attribute 'bridge' defines if bridged network mode should be - # switched on - # TODO: change to net -> nat, bridge, hostonly? - # TODO: since we use def in XML maybe use to override - 'virtualbox::bridge' => { - applies_to_systems => 1, - applies_to_clients => 1, - description => unshiftHereDoc(<<' End-of-Here'), - Should the bridging (direct access of the virtualbox clients - to the ethernet the host is connected to) be enabled - End-of-Here - content_regex => qr{^(0|1)$}, - content_descr => '0 or 1', - default => '1', - }, - # attribute 'mem' defines if memory should be forced - 'virtualbox::mem' => { - applies_to_systems => 1, - applies_to_clients => 1, - description => unshiftHereDoc(<<' End-of-Here'), - Do you want to force a ralative amount of RAM? - (Not implemented right now!) - End-of-Here - content_regex => qr{^(\d\d??)$}, - content_descr => 'Between 0 - 99', - default => undef, - }, - # attribute 'kvm' defines if KVM modules should be forced - 'virtualbox::kvm' => { - applies_to_systems => 1, - applies_to_clients => 1, - description => unshiftHereDoc(<<' End-of-Here'), - Do you want to force the usage of KVM modules where applicable? - (Not implemented right now!) - End-of-Here - content_regex => qr{^(0|1)$}, - content_descr => '0 or 1', - default => undef, - }, - # attribute 'tftpdir' defines TFTP dir for network boots /w NAT - 'virtualbox::tftpdir' => { - applies_to_systems => 1, - applies_to_clients => 1, - description => unshiftHereDoc(<<' End-of-Here'), - Do you want to define a stage 4 TFTP dir for netwoork boots when - using NAT? - Hint: Mount your TFTP ro via NFS to a local dir - End-of-Here - content_regex => qr{^(/)}, - content_descr => 'local path or "-" (unset)', - default => '/var/lib/virt/virtualbox', - }, - }; -} - -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'}; - - # Different names of the tool (should be unified somehow!?) - if (!isInPath('VirtualBox')) { - # todo: fix this - $self->{distro}->installVbox(); - } - if (!isInPath('VirtualBox')) { - print - "VirtualBox is not installed. VirtualBox Plugin won't be installed!\n" - ; - #exit - } - - $self->_writeRunlevelScript(); - - # Copy run-virt.include and template files to the appropriate place for - # inclusion in stage4 - my $pluginName = $self->{'name'}; - my $pluginBasePath = - "$self->{openslxBasePath}/lib/plugins/$pluginName/files"; - foreach my $file ( qw( run-virt.include virtualbox.include machine.include - empty-diff.vdi.gz rwimg.vdi.gz ) ) { - copyFile("$pluginBasePath/$file", "$self->{pluginRepositoryPath}/"); - chmod 0644, "$self->{pluginRepositoryPath}/$file"; - } - - return; -} - -sub removalPhase -{ - my $self = shift; - my $info = shift; - - return; -} - -sub checkStage3AttrValues -{ - my $self = shift; - my $stage3Attrs = shift; - my $vendorOSAttrs = shift; - #my @problems; - - #my $vmimg = $stage3Attrs->{'virtualbox::imagesrc'} || ''; - - return; -} - -# Write the runlevelscript -sub _writeRunlevelScript -{ - my $self = shift; - my $initfile = newInitFile(); - my $script = ""; - - $initfile->setName("vbox-slx"); - $initfile->setDesc("Setup environment for virtualbox. Part of OpenSLX virtualbox plugin."); - - # todo: Function need to be formated proper... not important right now - $initfile->addFunction( - 'running', - 'lsmod | grep -q "$1[^_-]"' - ); - # - $script = unshiftHereDoc(<<' End-of-Here'); - if running vboxdrv; then - if running vboxnetflt; then - echo "VirtualBox kernel modules (vboxdrv and vboxnetflt) are loaded." - else - echo "VirtualBox kernel module is loaded." - fi - #TODO: check it: ignore user check. handling our own way: - for i in /tmp/.vbox-*-ipc; do - echo "Running: " - $(VBoxManage -q list runningvms | sed -e 's/^".*"//' 2>/dev/null) - done - else - echo "VirtualBox kernel module(s) are not loaded." - fi - End-of-Here - $initfile->addFunction( - "vmstatus", - "$script" - ); - $initfile->addFunction( - 'start', - ' modprobe -qa vboxdrv vboxnetflt vboxnetadp', - ); - $initfile->addFunction( - 'stop', - ' rmmod vboxnetadp vboxnetflt vboxdrv', - ); - $initfile->addToCase( - 'start', - 'start' - ); - $initfile->addToCase( - 'stop', - 'stop' - ); - $initfile->addToCase( - 'status', - 'vmstatus' - ); - $initfile->addToCase( - 'restart', - 'stop && start' - ); - - # get distro version - my $distro = (split('-',$self->{'os-plugin-engine'}->distroName()))[0]; - my $runlevelscript = getInitFileForDistro($initfile, $distro); - - spitFile("$self->{'pluginRepositoryPath'}/vbox-slx", $runlevelscript); -} - -# The bridge configuration needs the bridge module to be present in early -# stage3 -sub suggestAdditionalKernelModules -{ - my $self = shift; - my $makeInitRamFSEngine = shift; - - my @suggestedModules; - - push @suggestedModules, qw( bridge ); - - return @suggestedModules; -} - -1; |