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");
}
print $sensor->{NAME}.": ".$sensor->{VAL}.$sensor->{UNITS};
my @info = ();
- foreach my $field qw(MIN MAX LOW_NON_CRITICAL UPPER_NON_CRITICAL LOW_CRITICAL UPPER_CRITICAL) {
+ foreach my $field (qw(MIN MAX LOW_NON_CRITICAL UPPER_NON_CRITICAL LOW_CRITICAL UPPER_CRITICAL)) {
if ($sensor->{$field} ne '') {
push @info, "${field}: ".$sensor->{$field}.$sensor->{UNITS};
}
sub spawn_gui {
my $base = shift;
- open(APPLET,"|appletviewer -J-Djava.security.policy=applet.policy /dev/stdin");
+ $ENV{'AWT_TOOLKIT'} = 'MToolkit';
+ open(APPLET,"|appletviewer -J-Djava.security.policy=applet.policy -J-Djava.net.preferIPv4Stack=true /dev/stdin");
print APPLET '<HTML><HEAD><TITLE>RSB S2 User Interface</TITLE></HEAD>';
print APPLET '<BODY>';
print APPLET '<object width="640" height="480">';
if ($gui) {
spawn_gui($url);
+ exit 0;
}
login(${$Config{$hostalias}}{"user"}, ${$Config{$hostalias}}{"pass"});