From 416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5 Mon Sep 17 00:00:00 2001 From: Sebastian Schmelzer Date: Thu, 2 Sep 2010 17:50:49 +0200 Subject: change dir structure --- .../plugins/openvz/OpenSLX/OSPlugin/openvz.pm | 110 +++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 src/os-plugins/plugins/openvz/OpenSLX/OSPlugin/openvz.pm (limited to 'src/os-plugins/plugins/openvz/OpenSLX') diff --git a/src/os-plugins/plugins/openvz/OpenSLX/OSPlugin/openvz.pm b/src/os-plugins/plugins/openvz/OpenSLX/OSPlugin/openvz.pm new file mode 100644 index 00000000..35e12bb2 --- /dev/null +++ b/src/os-plugins/plugins/openvz/OpenSLX/OSPlugin/openvz.pm @@ -0,0 +1,110 @@ +# Copyright (c) 2010 - RZ Uni Freiburg +# Copyright (c) 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/ +# ----------------------------------------------------------------------------- +# openvz.pm +# - implementation of the 'openvz' plugin +# ----------------------------------------------------------------------------- +package OpenSLX::OSPlugin::openvz; + +use strict; +use warnings; + +use base qw(OpenSLX::OSPlugin::Base); + +use File::Path; + +use OpenSLX::Basics; +use OpenSLX::Utils; + +sub new +{ + my $class = shift; + + my $self = { + name => 'openvz', + }; + + return bless $self, $class; +} + +sub getInfo +{ + my $self = shift; + + return { + description => unshiftHereDoc(<<' End-of-Here'), + Configures openVZ diskless boot, no installation yet. + End-of-Here + precedence => 20, + }; +} + +sub getAttrInfo +{ + my $self = shift; + + return { + 'openvz::active' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + should the 'openvz'-plugin be executed during boot? + End-of-Here + content_regex => qr{^(0|1)$}, + content_descr => '1 means active - 0 means inactive', + # set active to 0, later set specially created openVZ system to 1 + default => '0', + }, + # attribute 'imagesrc' defines where we can find openvz images + 'openvz::imagesrc' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + Where do we store our openvz images? NFS? Filesystem? + End-of-Here + content_regex => qr{^(/|nfs://)}, + content_descr => 'local path or URI or "-" (unset)', + default => undef, + }, + }; +} + +sub installationPhase +{ + my $self = shift; + my $info = shift; + + $self->{pluginRepositoryPath} = $info->{'plugin-repo-path'}; + $self->{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 = + "$self->{openslxBasePath}/lib/plugins/$pluginName/files"; + + foreach my $file ( qw( run-virt.include machine.include ) ) { + copyFile("$pluginBasePath/$file", "$self->{pluginRepositoryPath}/"); + chmod 0644, "$self->{pluginRepositoryPath}/$file"; + } + + return; +} + +sub removalPhase +{ + my $self = shift; + my $info = shift; + + return; +} + +1; -- cgit v1.2.3-55-g7522