[Cluster-devel] cluster/fence/agents/ilo fence_ilo.pl
rmccabe at sourceware.org
rmccabe at sourceware.org
Wed Apr 4 19:15:02 UTC 2007
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: rmccabe at sourceware.org 2007-04-04 20:15:01
Modified files:
fence/agents/ilo: fence_ilo.pl
Log message:
Make power on work correctly for RIBCL version 2.22 on both iLO2 and iLO:
for the former, HOLD_PWR_BTN is used to both power the machine on and off;
when the power is off, PRESS_PWR_BUTTON has no effect. For the latter,
HOLD_PWR_BUTTON is used to power the machine off, and PRESS_PWR_BUTTON is
used to power the machine on; when the power is off, HOLD_PWR_BUTTON
has no effect.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/agents/ilo/fence_ilo.pl.diff?cvsroot=cluster&r1=1.7&r2=1.8
--- cluster/fence/agents/ilo/fence_ilo.pl 2007/02/19 17:08:59 1.7
+++ cluster/fence/agents/ilo/fence_ilo.pl 2007/04/04 19:15:00 1.8
@@ -279,6 +279,13 @@
foreach my $line (@response)
{
+ if ($line =~ /MANAGEMENT_PROCESSOR\s*=\s*\"(.*)\"/) {
+ if ($1 eq "iLO2") {
+ $ilo_vers = 2;
+ print "power_status: reporting iLO2\n" if ($verbose);
+ }
+ }
+
if ($line =~ /MESSAGE='(.*)'/)
{
my $msg = $1;
@@ -343,18 +350,26 @@
sendsock $socket, "<LOGIN USER_LOGIN = \"$username\" PASSWORD = \"$passwd\">\n";
sendsock $socket, "<SERVER_INFO MODE = \"write\">\n";
+ if ($ilo_vers == 2) {
+ # iLO2 with RIBCL v2.22 behaves differently from
+ # iLO with RIBCL v2.22. For the former, HOLD_PWR_BTN is
+ # used to both power the machine on and off; when the power
+ # is off, PRESS_PWR_BUTTON has no effect. For the latter,
+ # HOLD_PWR_BUTTON is used to power the machine off, and
+ # PRESS_PWR_BUTTON is used to power the machine on;
+ # when the power is off, HOLD_PWR_BUTTON has no effect.
+ sendsock $socket, "<HOLD_PWR_BTN/>\n";
+ }
# As of firmware version 1.71 (RIBCL 2.21) The SET_HOST_POWER command
# is no longer available. HOLD_PWR_BTN and PRESS_PWR_BTN are used
# instead now :(
- if ($ribcl_vers < 2.21)
+ elsif ($ribcl_vers < 2.21)
{
sendsock $socket, "<SET_HOST_POWER HOST_POWER = \"$state\"/>\n";
}
else
{
- if ($ribcl_vers > 2.21) {
- sendsock $socket, "<HOLD_PWR_BTN/>\n";
- } elsif ($state eq "Y" )
+ if ($state eq "Y" )
{
sendsock $socket, "<PRESS_PWR_BTN/>\n";
}
@@ -403,6 +418,9 @@
sendsock $socket, "<RIBCL VERSION=\"2.0\">\n";
}
sendsock $socket, "<LOGIN USER_LOGIN = \"$username\" PASSWORD = \"$passwd\">\n";
+ if ($ribcl_vers >= 2) {
+ sendsock $socket, "<RIB_INFO MODE=\"read\"><GET_FW_VERSION/></RIB_INFO>\n";
+ }
sendsock $socket, "<SERVER_INFO MODE = \"read\">\n";
sendsock $socket, "<GET_HOST_POWER_STATUS/>\n";
sendsock $socket, "</SERVER_INFO>\n";
@@ -492,6 +510,7 @@
$action = "reboot";
$ribcl_vers = undef; # undef = autodetect
+$ilo_vers = 1;
if (@ARGV > 0) {
getopts("a:hl:n:o:p:S:r:qvV") || fail_usage ;
More information about the Cluster-devel
mailing list