]> git.zerfleddert.de Git - rsbs2/commitdiff
IPMI power/reset via rsbs2.pl
authorMichael Gernoth <michael@gernoth.net>
Mon, 23 Aug 2010 15:17:28 +0000 (17:17 +0200)
committerMichael Gernoth <michael@gernoth.net>
Mon, 23 Aug 2010 15:17:28 +0000 (17:17 +0200)
rsbs2.pl

index c835c0dd109f2d1635cf08657687854b57885c0a..69272cad21bac6511a1732c22e30ab9616d6b3b6 100755 (executable)
--- a/rsbs2.pl
+++ b/rsbs2.pl
@@ -219,8 +219,9 @@ sub serveraction {
 
        my $pmode = 2;
 
-       setprop("SERVER_HARD_RESET_VIA_IPMI", "FALSE");
-       setprop("SERVER_POWER_CHANGE_VIA_IPMI", "FALSE");
+       #setprop("SERVER_HARD_RESET_VIA_IPMI", "FALSE");
+       #setprop("SERVER_POWER_CHANGE_VIA_IPMI", "FALSE");
+
        #PM Mode
        setprop("SERVER_POWER_ON_MODE", sprintf("0x%x", $pmode));
        setprop("SERVER_POWER_OFF_MODE", sprintf("0x%x", $pmode));
@@ -235,23 +236,37 @@ sub serveraction {
 }
 
 sub powerup {
-       print "powerup\n" if ($verbose);
-       setprop("SERVER_POWER_ON_PULSE_MS", sprintf("0x%x", $poweronms));
-       setprop("SERVER_POWER_OFF_PULSE_MS", "0x0");
-       serveraction("powercycle");
+       if (_getprop("SERVER_POWER_CHANGE_VIA_IPMI")->{PROPLIST}->{PROP}->{VAL} eq "TRUE") {
+               print "powerup via IPMI\n" if ($verbose);
+               serveraction("powerup");
+       } else {
+               print "powerup via relay (hack)\n" if ($verbose);
+               setprop("SERVER_POWER_ON_PULSE_MS", sprintf("0x%x", $poweronms));
+               setprop("SERVER_POWER_OFF_PULSE_MS", "0x0");
+               serveraction("powercycle");
+       }
 }
 
 sub powerdown {
-       print "powerdown\n" if ($verbose);
-       setprop("SERVER_POWER_ON_PULSE_MS", "0x0");
-       setprop("SERVER_POWER_OFF_PULSE_MS", sprintf("0x%x", $poweroffms));
-       serveraction("powercycle");
+       if (_getprop("SERVER_POWER_CHANGE_VIA_IPMI")->{PROPLIST}->{PROP}->{VAL} eq "TRUE") {
+               print "powerdown via IPMI\n" if ($verbose);
+               serveraction("powerdown");
+       } else {
+               print "powerdown via relay (hack)\n" if ($verbose);
+               setprop("SERVER_POWER_ON_PULSE_MS", "0x0");
+               setprop("SERVER_POWER_OFF_PULSE_MS", sprintf("0x%x", $poweroffms));
+               serveraction("powercycle");
+       }
 }
 
 sub powercycle {
-       print "powercycle\n" if ($verbose);
-       setprop("SERVER_POWER_ON_PULSE_MS", sprintf("0x%x", $poweronms));
-       setprop("SERVER_POWER_OFF_PULSE_MS", sprintf("0x%x", $poweroffms));
+       if (_getprop("SERVER_POWER_CHANGE_VIA_IPMI")->{PROPLIST}->{PROP}->{VAL} eq "TRUE") {
+               print "powercycle via IPMI\n" if ($verbose);
+       } else {
+               print "powercycle via relay\n" if ($verbose);
+               setprop("SERVER_POWER_ON_PULSE_MS", sprintf("0x%x", $poweronms));
+               setprop("SERVER_POWER_OFF_PULSE_MS", sprintf("0x%x", $poweroffms));
+       }
        serveraction("powercycle");
 }
 
Impressum, Datenschutz