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));
}
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");
}