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 --- .../OpenSLX/OSPlugin/sysrqshutdown.pm | 101 +++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 src/os-plugins/plugins/sysrqshutdown/OpenSLX/OSPlugin/sysrqshutdown.pm (limited to 'src/os-plugins/plugins/sysrqshutdown/OpenSLX/OSPlugin/sysrqshutdown.pm') diff --git a/src/os-plugins/plugins/sysrqshutdown/OpenSLX/OSPlugin/sysrqshutdown.pm b/src/os-plugins/plugins/sysrqshutdown/OpenSLX/OSPlugin/sysrqshutdown.pm new file mode 100644 index 00000000..9800c203 --- /dev/null +++ b/src/os-plugins/plugins/sysrqshutdown/OpenSLX/OSPlugin/sysrqshutdown.pm @@ -0,0 +1,101 @@ +# Copyright (c) 2007 - 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/ +# ----------------------------------------------------------------------------- +# sysrqshutdown.pm +# - implementation of the 'sysrqshutdow' plugin, which replaces the shutdown +# binary through a SYSRQ shutdown script +# ----------------------------------------------------------------------------- +package OpenSLX::OSPlugin::sysrqshutdown; + +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 => 'sysrqshutdown', + }; + + return bless $self, $class; +} + +sub getInfo +{ + my $self = shift; + + return { + description => unshiftHereDoc(<<' End-of-Here'), + Replaces the shutdown binary through a SYSRQ shutdown script + End-of-Here + precedence => 10, + }; +} + +sub getAttrInfo +{ + my $self = shift; + + return { + 'sysrqshutdown::active' => { + applies_to_systems => 1, + applies_to_clients => 1, + description => unshiftHereDoc(<<' End-of-Here'), + should the 'sysrqshutdown'-plugin be activated? + End-of-Here + content_regex => qr{^(0|1)$}, + content_descr => '1 means active - 0 means inactive', + default => '1', + }, + + }; +} + +sub installationPhase +{ + my $self = shift; + my $info = shift; + + if (! -e "/sbin/shutdown.slxorig") { + # copy files + my $openslxBasePath = $info->{'openslx-base-path'}; + my $pluginName = $self->{'name'}; + my $pluginBasePath + = "$openslxBasePath/lib/plugins/$pluginName/files"; + + system("mv /sbin/shutdown /sbin/shutdown.slxorig"); + system("cp -p $pluginBasePath/shutdown /sbin/"); + chmod 0755, "/sbin/shutdown"; + } + + return; +} + +sub removalPhase +{ + my $self = shift; + my $info = shift; + + if (-e "/sbin/shutdown.slxorig") { + system("mv /sbin/shutdown.slxorig /sbin/shutdown"); + } + + return; +} + +1; -- cgit v1.2.3-55-g7522