diff options
Diffstat (limited to 'src/os-plugins/plugins/virtualbox/OpenSLX/Distro')
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; |