summaryrefslogtreecommitdiffstats
path: root/os-plugins/plugins/virtualbox/OpenSLX
diff options
context:
space:
mode:
Diffstat (limited to 'os-plugins/plugins/virtualbox/OpenSLX')
-rw-r--r--os-plugins/plugins/virtualbox/OpenSLX/Distro/Base.pm59
-rw-r--r--os-plugins/plugins/virtualbox/OpenSLX/Distro/Debian.pm52
-rw-r--r--os-plugins/plugins/virtualbox/OpenSLX/Distro/Suse.pm48
-rw-r--r--os-plugins/plugins/virtualbox/OpenSLX/Distro/Ubuntu.pm54
-rw-r--r--os-plugins/plugins/virtualbox/OpenSLX/OSPlugin/virtualbox.pm284
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;