summaryrefslogtreecommitdiffstats
path: root/src/os-plugins/plugins/virtualbox/OpenSLX/Distro
diff options
context:
space:
mode:
Diffstat (limited to 'src/os-plugins/plugins/virtualbox/OpenSLX/Distro')
-rw-r--r--src/os-plugins/plugins/virtualbox/OpenSLX/Distro/Base.pm59
-rw-r--r--src/os-plugins/plugins/virtualbox/OpenSLX/Distro/Debian.pm52
-rw-r--r--src/os-plugins/plugins/virtualbox/OpenSLX/Distro/Suse.pm48
-rw-r--r--src/os-plugins/plugins/virtualbox/OpenSLX/Distro/Ubuntu.pm54
4 files changed, 213 insertions, 0 deletions
diff --git a/src/os-plugins/plugins/virtualbox/OpenSLX/Distro/Base.pm b/src/os-plugins/plugins/virtualbox/OpenSLX/Distro/Base.pm
new file mode 100644
index 00000000..d26cdfcc
--- /dev/null
+++ b/src/os-plugins/plugins/virtualbox/OpenSLX/Distro/Base.pm
@@ -0,0 +1,59 @@
+# 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/src/os-plugins/plugins/virtualbox/OpenSLX/Distro/Debian.pm b/src/os-plugins/plugins/virtualbox/OpenSLX/Distro/Debian.pm
new file mode 100644
index 00000000..edd117ca
--- /dev/null
+++ b/src/os-plugins/plugins/virtualbox/OpenSLX/Distro/Debian.pm
@@ -0,0 +1,52 @@
+# 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/src/os-plugins/plugins/virtualbox/OpenSLX/Distro/Suse.pm b/src/os-plugins/plugins/virtualbox/OpenSLX/Distro/Suse.pm
new file mode 100644
index 00000000..9af3191e
--- /dev/null
+++ b/src/os-plugins/plugins/virtualbox/OpenSLX/Distro/Suse.pm
@@ -0,0 +1,48 @@
+# 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/src/os-plugins/plugins/virtualbox/OpenSLX/Distro/Ubuntu.pm b/src/os-plugins/plugins/virtualbox/OpenSLX/Distro/Ubuntu.pm
new file mode 100644
index 00000000..44695680
--- /dev/null
+++ b/src/os-plugins/plugins/virtualbox/OpenSLX/Distro/Ubuntu.pm
@@ -0,0 +1,54 @@
+# 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;