fence-agents: master - fencing: Correct exit codes for status operation
Marek Grác
marx at fedoraproject.org
Mon Oct 19 12:52:08 UTC 2009
Gitweb: http://git.fedorahosted.org/git/fence-agents.git?p=fence-agents.git;a=commitdiff;h=19c01e65ffe8f0f190682c10347a62d4906f70b6
Commit: 19c01e65ffe8f0f190682c10347a62d4906f70b6
Parent: e0fae3825aa2aff58cda631e77ea958c02cb1ce8
Author: Marek 'marx' Grac <mgrac at redhat.com>
AuthorDate: Mon Oct 19 14:47:12 2009 +0200
Committer: Marek 'marx' Grac <mgrac at redhat.com>
CommitterDate: Mon Oct 19 14:47:12 2009 +0200
fencing: Correct exit codes for status operation
According to standard operation status should return 0 (if ON) and 2 (if OFF).
In all other cases if operation was succesfull then agent return 0.
---
fence/agents/alom/fence_alom.py | 4 ++-
fence/agents/apc/fence_apc.py | 4 ++-
fence/agents/apc_snmp/fence_apc_snmp.py | 3 +-
fence/agents/baytech/fence_baytech.pl | 8 +++++-
fence/agents/bladecenter/fence_bladecenter.py | 4 ++-
fence/agents/bullpap/fence_bullpap.pl | 6 ++++-
fence/agents/cisco_mds/fence_cisco_mds.py | 4 ++-
fence/agents/drac/fence_drac.pl | 17 +++++++++----
fence/agents/drac5/fence_drac5.py | 4 ++-
fence/agents/eps/fence_eps.py | 4 ++-
fence/agents/ibmblade/fence_ibmblade.py | 3 +-
fence/agents/ifmib/fence_ifmib.py | 4 ++-
fence/agents/ilo/fence_ilo.py | 4 ++-
fence/agents/ilo_mp/fence_ilo_mp.py | 4 ++-
fence/agents/intelmodular/fence_intelmodular.py | 4 ++-
fence/agents/ipmilan/ipmilan.c | 28 ++++++++++++++++++++--
fence/agents/ldom/fence_ldom.py | 6 +++-
fence/agents/lib/fencing.py.py | 12 +++++++--
fence/agents/lpar/fence_lpar.py | 3 +-
fence/agents/rsa/fence_rsa.py | 6 +++-
fence/agents/rsb/fence_rsb.py | 8 ++++++
fence/agents/sanbox2/fence_sanbox2.py | 4 ++-
fence/agents/virsh/fence_virsh.py | 3 +-
fence/agents/vmware/fence_vmware.py | 4 ++-
fence/agents/wti/fence_wti.py | 4 ++-
25 files changed, 121 insertions(+), 34 deletions(-)
diff --git a/fence/agents/alom/fence_alom.py b/fence/agents/alom/fence_alom.py
index 4fffa0a..8793e92 100644
--- a/fence/agents/alom/fence_alom.py
+++ b/fence/agents/alom/fence_alom.py
@@ -64,7 +64,7 @@ def main():
# Operate the fencing device
conn = fence_login(options)
- fence_action(conn, options, set_power_status, get_power_status,None)
+ result = fence_action(conn, options, set_power_status, get_power_status,None)
# Logout from system
try:
@@ -75,5 +75,7 @@ def main():
except pexpect.ExceptionPexpect:
pass
+ sys.exit(result)
+
if __name__ == "__main__":
main()
diff --git a/fence/agents/apc/fence_apc.py b/fence/agents/apc/fence_apc.py
index 685a154..92b109c 100755
--- a/fence/agents/apc/fence_apc.py
+++ b/fence/agents/apc/fence_apc.py
@@ -212,7 +212,7 @@ def main():
## Operate the fencing device
####
conn = fence_login(options)
- fence_action(conn, options, set_power_status, get_power_status, get_power_status)
+ result = fence_action(conn, options, set_power_status, get_power_status, get_power_status)
##
## Logout from system
@@ -228,6 +228,8 @@ def main():
pass
except pexpect.ExceptionPexpect:
pass
+
+ sys.exit(result)
if __name__ == "__main__":
main()
diff --git a/fence/agents/apc_snmp/fence_apc_snmp.py b/fence/agents/apc_snmp/fence_apc_snmp.py
index 7e8118e..0c36b66 100644
--- a/fence/agents/apc_snmp/fence_apc_snmp.py
+++ b/fence/agents/apc_snmp/fence_apc_snmp.py
@@ -192,7 +192,8 @@ def main():
show_docs(options)
# Operate the fencing device
- fence_action(FencingSnmp(options), options, set_power_status, get_power_status, get_outlets_status)
+ result = fence_action(FencingSnmp(options), options, set_power_status, get_power_status, get_outlets_status)
+ sys.exit(result)
if __name__ == "__main__":
main()
diff --git a/fence/agents/baytech/fence_baytech.pl b/fence/agents/baytech/fence_baytech.pl
index 7325ee6..b625968 100644
--- a/fence/agents/baytech/fence_baytech.pl
+++ b/fence/agents/baytech/fence_baytech.pl
@@ -570,7 +570,13 @@ elsif ($action =~ /status/i)
{
print "Outlet '$bt_name' is $bt_state and is ".
(($bt_locked eq "")?"not ":"")."Locked\n";
- $exit=0;
+
+ if ($bt_state =~ /on/i)
+ {
+ $exit=0;
+ } else {
+ $exit=2;
+ }
}
elsif ($bt_locked ne "")
{
diff --git a/fence/agents/bladecenter/fence_bladecenter.py b/fence/agents/bladecenter/fence_bladecenter.py
index d55f31a..414c260 100644
--- a/fence/agents/bladecenter/fence_bladecenter.py
+++ b/fence/agents/bladecenter/fence_bladecenter.py
@@ -110,7 +110,7 @@ def main():
## Operate the fencing device
######
conn = fence_login(options)
- fence_action(conn, options, set_power_status, get_power_status, get_blades_list)
+ result = fence_action(conn, options, set_power_status, get_power_status, get_blades_list)
##
## Logout from system
@@ -122,6 +122,8 @@ def main():
pass
except pexpect.ExceptionPexpect:
pass
+
+ sys.exit(result)
if __name__ == "__main__":
main()
diff --git a/fence/agents/bullpap/fence_bullpap.pl b/fence/agents/bullpap/fence_bullpap.pl
index 11382dc..6915f57 100644
--- a/fence/agents/bullpap/fence_bullpap.pl
+++ b/fence/agents/bullpap/fence_bullpap.pl
@@ -297,6 +297,7 @@ elsif (/^status$/i) { $action = "status"; }
#
$success=0;
$_ = $action;
+my $exit_code=0;
if (/(on|off)/)
{
my $timeout = 120; # 120 = max of (60, 120). Max timeout for "on"
@@ -341,6 +342,9 @@ elsif (/status/)
get_power_state $host,$domain,$login,$passwd;
$state=$_;
$success = 1 if defined $state;
+ if ($state eq "OFF") {
+ $exit_code = 2;
+ }
}
else
{
@@ -351,7 +355,7 @@ if ($success)
{
print "success: domain $domain $action". ((defined $state) ? ": $state":"")
."\n" unless defined $quiet;
- exit 0;
+ exit $exit_code;
}
else
{
diff --git a/fence/agents/cisco_mds/fence_cisco_mds.py b/fence/agents/cisco_mds/fence_cisco_mds.py
index d007b72..bd8d858 100644
--- a/fence/agents/cisco_mds/fence_cisco_mds.py
+++ b/fence/agents/cisco_mds/fence_cisco_mds.py
@@ -113,7 +113,9 @@ def main():
port_oid=cisco_port2oid(options["-n"])
# Operate the fencing device
- fence_action(FencingSnmp(options), options, set_power_status, get_power_status, get_outlets_status)
+ result = fence_action(FencingSnmp(options), options, set_power_status, get_power_status, get_outlets_status)
+
+ sys.exit(result)
if __name__ == "__main__":
main()
diff --git a/fence/agents/drac/fence_drac.pl b/fence/agents/drac/fence_drac.pl
index 78c4735..5cc1a52 100644
--- a/fence/agents/drac/fence_drac.pl
+++ b/fence/agents/drac/fence_drac.pl
@@ -445,7 +445,7 @@ sub do_action
if ($status =~ /^on$/i)
{
msg "success: already on";
- return;
+ return 0;
}
set_power_status on;
@@ -458,7 +458,7 @@ sub do_action
if ($status =~ /^off$/i)
{
msg "success: already off";
- return;
+ return 0;
}
set_power_status off;
@@ -482,12 +482,19 @@ sub do_action
elsif ($action =~ /^status$/i)
{
msg "status: $status";
- return;
+ if ($status =~ /on/i)
+ {
+ return 0;
+ } else {
+ return 2;
+ }
}
else
{
fail "failed: unrecognised action: '$action'";
}
+
+ return 0;
}
#
@@ -651,10 +658,10 @@ elsif ($drac_version eq $DRAC_VERSION_MC)
unless defined $modulename;
}
-do_action;
+my $res = do_action;
logout;
-exit 0;
+exit $res;
diff --git a/fence/agents/drac5/fence_drac5.py b/fence/agents/drac5/fence_drac5.py
index d7fbdaa..ab5056b 100644
--- a/fence/agents/drac5/fence_drac5.py
+++ b/fence/agents/drac5/fence_drac5.py
@@ -115,7 +115,7 @@ def main():
## Assume this is DRAC 5 by default as we don't want to break anything
options["model"]="DRAC 5"
- fence_action(conn, options, set_power_status, get_power_status, get_list_devices)
+ result = fence_action(conn, options, set_power_status, get_power_status, get_list_devices)
##
## Logout from system
@@ -127,6 +127,8 @@ def main():
pass
except pexpect.ExceptionPexpect:
pass
+
+ sys.exit(result)
if __name__ == "__main__":
main()
diff --git a/fence/agents/eps/fence_eps.py b/fence/agents/eps/fence_eps.py
index 604a481..d9118a7 100644
--- a/fence/agents/eps/fence_eps.py
+++ b/fence/agents/eps/fence_eps.py
@@ -110,7 +110,9 @@ def main():
show_docs(options)
#Run fence action. Conn is None, beacause we always need open new http connection
- fence_action(None, options, set_power_status, get_power_status,get_power_status)
+ result = fence_action(None, options, set_power_status, get_power_status,get_power_status)
+
+ sys.exit(result)
if __name__ == "__main__":
main()
diff --git a/fence/agents/ibmblade/fence_ibmblade.py b/fence/agents/ibmblade/fence_ibmblade.py
index 4ff334e..4548a29 100644
--- a/fence/agents/ibmblade/fence_ibmblade.py
+++ b/fence/agents/ibmblade/fence_ibmblade.py
@@ -74,7 +74,8 @@ def main():
show_docs(options)
# Operate the fencing device
- fence_action(FencingSnmp(options), options, set_power_status, get_power_status, get_outlets_status)
+ result = fence_action(FencingSnmp(options), options, set_power_status, get_power_status, get_outlets_status)
+ sys.exit(result)
if __name__ == "__main__":
main()
diff --git a/fence/agents/ifmib/fence_ifmib.py b/fence/agents/ifmib/fence_ifmib.py
index 7645afa..159554e 100644
--- a/fence/agents/ifmib/fence_ifmib.py
+++ b/fence/agents/ifmib/fence_ifmib.py
@@ -131,7 +131,9 @@ def main():
show_docs(options)
# Operate the fencing device
- fence_action(FencingSnmp(options), options, set_power_status, get_power_status, get_outlets_status)
+ result = fence_action(FencingSnmp(options), options, set_power_status, get_power_status, get_outlets_status)
+
+ sys.exit(result)
if __name__ == "__main__":
main()
diff --git a/fence/agents/ilo/fence_ilo.py b/fence/agents/ilo/fence_ilo.py
index 574f944..0ff40d7 100755
--- a/fence/agents/ilo/fence_ilo.py
+++ b/fence/agents/ilo/fence_ilo.py
@@ -105,7 +105,9 @@ def main():
##
## Fence operations
####
- fence_action(conn, options, set_power_status, get_power_status, None)
+ result = fence_action(conn, options, set_power_status, get_power_status, None)
+
+ sys.exit(result)
if __name__ == "__main__":
main()
diff --git a/fence/agents/ilo_mp/fence_ilo_mp.py b/fence/agents/ilo_mp/fence_ilo_mp.py
index dfd4c1e..2ddd733 100644
--- a/fence/agents/ilo_mp/fence_ilo_mp.py
+++ b/fence/agents/ilo_mp/fence_ilo_mp.py
@@ -65,7 +65,7 @@ def main():
##
## Fence operations
####
- fence_action(conn, options, set_power_status, get_power_status)
+ result = fence_action(conn, options, set_power_status, get_power_status)
try:
conn.send("exit\r\n")
@@ -73,6 +73,8 @@ def main():
pass
except pexpect.ExceptionPexpect:
pass
+
+ sys.exit(result)
if __name__ == "__main__":
main()
diff --git a/fence/agents/intelmodular/fence_intelmodular.py b/fence/agents/intelmodular/fence_intelmodular.py
index a03e4a6..c943c1e 100644
--- a/fence/agents/intelmodular/fence_intelmodular.py
+++ b/fence/agents/intelmodular/fence_intelmodular.py
@@ -80,7 +80,9 @@ def main():
show_docs(options)
# Operate the fencing device
- fence_action(FencingSnmp(options), options, set_power_status, get_power_status, get_outlets_status)
+ result = fence_action(FencingSnmp(options), options, set_power_status, get_power_status, get_outlets_status)
+
+ sys.exit(result)
if __name__ == "__main__":
main()
diff --git a/fence/agents/ipmilan/ipmilan.c b/fence/agents/ipmilan/ipmilan.c
index e001f3d..ad35001 100644
--- a/fence/agents/ipmilan/ipmilan.c
+++ b/fence/agents/ipmilan/ipmilan.c
@@ -34,6 +34,19 @@
#define DEFAULT_METHOD "onoff"
+/* We should follow FenceAgentsAPI standard*/
+#define ERR_OFF_SUCCESSFUL 0
+#define ERR_OFF_FAIL 1
+
+#define ERR_ON_SUCCESSFUL 0
+#define ERR_ON_FAIL 1
+
+#define ERR_STATUS_ON 0
+#define ERR_STATUS_FAIL 1
+#define ERR_STATUS_OFF 2
+
+#define ERR_OK 0
+
#define log(lvl, fmt, args...) fprintf(stderr, fmt, ##args)
#include <libgen.h>
#include "copyright.cf"
@@ -844,6 +857,7 @@ main(int argc, char **argv)
int timeout=DEFAULT_TIMEOUT;
int cipher=-1;
int print_final_status=1;
+ int translated_ret = -1;
memset(ip, 0, sizeof(ip));
memset(authtype, 0, sizeof(authtype));
@@ -1013,19 +1027,22 @@ main(int argc, char **argv)
} else {
/* Original onoff method */
ret = ipmi_off(i);
- if (ret != 0)
+ translated_ret = (ret==0?ERR_OFF_SUCCESSFUL:ERR_OFF_FAIL);
+ if (ret != 0) {
goto out;
+ }
ret = ipmi_on(i);
}
} else if (!strcasecmp(op, "on")) {
printf("Powering on machine @ IPMI:%s...", ip);
fflush(stdout);
ret = ipmi_on(i);
-
+ translated_ret = (ret==0?ERR_ON_SUCCESSFUL:ERR_ON_FAIL);
} else if (!strcasecmp(op, "off")) {
printf("Powering off machine @ IPMI:%s...", ip);
fflush(stdout);
ret = ipmi_off(i);
+ translated_ret = (ret==0?ERR_ON_SUCCESSFUL:ERR_ON_FAIL);
} else if (!strcasecmp(op, "status") || !strcasecmp(op, "monitor")) {
printf("Getting status of IPMI:%s...",ip);
fflush(stdout);
@@ -1034,26 +1051,31 @@ main(int argc, char **argv)
case STATE_ON:
if (!strcasecmp(op, "status"))
printf("Chassis power = On\n");
+ translated_ret = ERR_STATUS_ON;
ret = 0;
break;
case STATE_OFF:
if (!strcasecmp(op, "status"))
printf("Chassis power = Off\n");
+ translated_ret = ERR_STATUS_OFF;
ret = 0;
break;
default:
if (!strcasecmp(op, "status"))
printf("Chassis power = Unknown\n");
+ translated_ret = ERR_STATUS_FAIL;
ret = 1;
break;
}
} else if (!strcasecmp(op, "list")) {
printf("%s\n","N/A");
ret=0;
+ translated_ret = ERR_OK;
print_final_status=0;
} else if (!strcasecmp(op, "metadata")) {
print_xml_metadata(pname);
ret=0;
+ translated_ret = ERR_OK;
print_final_status=0;
}
@@ -1068,5 +1090,5 @@ out:
else
printf("Failed\n");
}
- return ret;
+ return translated_ret;
}
diff --git a/fence/agents/ldom/fence_ldom.py b/fence/agents/ldom/fence_ldom.py
index 4806982..94d1429 100644
--- a/fence/agents/ldom/fence_ldom.py
+++ b/fence/agents/ldom/fence_ldom.py
@@ -105,7 +105,7 @@ def main():
## Operate the fencing device
####
conn = fence_login(options)
- fence_action(conn, options, set_power_status, get_power_status,get_power_status)
+ result = fence_action(conn, options, set_power_status, get_power_status,get_power_status)
##
## Logout from system
@@ -116,7 +116,9 @@ def main():
except exceptions.OSError:
pass
except pexpect.ExceptionPexpect:
- pass
+ pass
+
+ sys.exit(result)
if __name__ == "__main__":
main()
diff --git a/fence/agents/lib/fencing.py.py b/fence/agents/lib/fencing.py.py
index a099a0a..566cebf 100644
--- a/fence/agents/lib/fencing.py.py
+++ b/fence/agents/lib/fencing.py.py
@@ -363,7 +363,7 @@ def atexit_handler():
os.close(1)
except IOError:
sys.stderr.write("%s failed to close standard output\n"%(sys.argv[0]))
- sys.exit(1)
+ sys.exit(EC_GENERIC_ERROR)
def version(command, release, build_date, copyright_notice):
print command, " ", release, " ", build_date
@@ -374,7 +374,7 @@ def fail_usage(message = ""):
if len(message) > 0:
sys.stderr.write(message+"\n")
sys.stderr.write("Please use '-h' for usage\n")
- sys.exit(EC_BAD_ARGS)
+ sys.exit(EC_GENERIC_ERROR)
def fail(error_code):
message = {
@@ -387,7 +387,7 @@ def fail(error_code):
EC_STATUS_HMC : "Failed: Either unable to obtaion correct plug status, partition is not available or incorrect HMC version used"
}[error_code] + "\n"
sys.stderr.write(message)
- sys.exit(error_code)
+ sys.exit(EC_GENERIC_ERROR)
def usage(avail_opt):
global all_opt
@@ -678,6 +678,8 @@ def show_docs(options, docs = None):
sys.exit(0)
def fence_action(tn, options, set_power_fn, get_power_fn, get_outlet_list = None):
+ result = 0
+
## Process options that manipulate fencing device
#####
if (options["-o"] == "list") and (0 == options["device_opt"].count("port")) and (0 == options["device_opt"].count("partition")):
@@ -744,8 +746,12 @@ def fence_action(tn, options, set_power_fn, get_power_fn, get_outlet_list = None
print "Success: Rebooted"
elif options["-o"] == "status":
print "Status: " + status.upper()
+ if status.upper() == "OFF":
+ result = 2
elif options["-o"] == "monitor":
1
+
+ return result
def fence_login(options):
force_ipvx=""
diff --git a/fence/agents/lpar/fence_lpar.py b/fence/agents/lpar/fence_lpar.py
index 451ca93..37ff2b4 100644
--- a/fence/agents/lpar/fence_lpar.py
+++ b/fence/agents/lpar/fence_lpar.py
@@ -161,7 +161,7 @@ def main():
## Operate the fencing device
####
conn = fence_login(options)
- fence_action(conn, options, set_power_status, get_power_status, get_lpar_list)
+ result = fence_action(conn, options, set_power_status, get_power_status, get_lpar_list)
##
## Logout from system
@@ -174,5 +174,6 @@ def main():
except pexpect.ExceptionPexpect:
pass
+ sys.exit(result)
if __name__ == "__main__":
main()
diff --git a/fence/agents/rsa/fence_rsa.py b/fence/agents/rsa/fence_rsa.py
index 16457a9..583a84a 100644
--- a/fence/agents/rsa/fence_rsa.py
+++ b/fence/agents/rsa/fence_rsa.py
@@ -62,7 +62,7 @@ def main():
## Operate the fencing device
######
conn = fence_login(options)
- fence_action(conn, options, set_power_status, get_power_status, None)
+ result = fence_action(conn, options, set_power_status, get_power_status, None)
##
## Logout from system
@@ -73,7 +73,9 @@ def main():
except exceptions.OSError:
pass
except pexpect.ExceptionPexpect:
- pass
+ pass
+
+ sys.exit(result)
if __name__ == "__main__":
main()
diff --git a/fence/agents/rsb/fence_rsb.py b/fence/agents/rsb/fence_rsb.py
index 1df0374..77ac26b 100644
--- a/fence/agents/rsb/fence_rsb.py
+++ b/fence/agents/rsb/fence_rsb.py
@@ -56,6 +56,9 @@ def main():
POWER_STATUS = 2
POWER_REBOOT = 3
+ STATUS_ON = 0
+ STATUS_OFF = 2
+
power_command_issued = 0
address = ""
@@ -69,6 +72,8 @@ def main():
standard_err = 2
+ result = 0
+
#set up regex list
USERNAME = 0
PASSWORD = 1
@@ -368,8 +373,10 @@ def main():
print "Determining power state..."
if power_state == 1:
print "Server is On"
+ result = STATUS_ON
elif power_state == 0:
print "Server is Off"
+ result = STATUS_OFF
else:
os.write(standard_err, ("FENCE: Cannot determine power state: %s" % buf))
sys.exit(1)
@@ -382,6 +389,7 @@ def main():
sock.write("\r")
sock.close()
+ sys.exit(result)
if __name__ == "__main__":
main()
diff --git a/fence/agents/sanbox2/fence_sanbox2.py b/fence/agents/sanbox2/fence_sanbox2.py
index d1e65cf..38adaa2 100644
--- a/fence/agents/sanbox2/fence_sanbox2.py
+++ b/fence/agents/sanbox2/fence_sanbox2.py
@@ -139,7 +139,7 @@ def main():
sys.stderr.write("Failed: Unable to switch to admin section\n")
sys.exit(EC_GENERIC_ERROR)
- fence_action(conn, options, set_power_status, get_power_status, get_list_devices)
+ result = fence_action(conn, options, set_power_status, get_power_status, get_list_devices)
##
## Logout from system
@@ -153,5 +153,7 @@ def main():
except pexpect.ExceptionPexpect:
pass
+ sys.exit(result)
+
if __name__ == "__main__":
main()
diff --git a/fence/agents/virsh/fence_virsh.py b/fence/agents/virsh/fence_virsh.py
index 7ef71a3..7d883dd 100644
--- a/fence/agents/virsh/fence_virsh.py
+++ b/fence/agents/virsh/fence_virsh.py
@@ -82,7 +82,7 @@ def main():
## Operate the fencing device
conn = fence_login(options)
- fence_action(conn, options, set_power_status, get_power_status, get_outlets_status)
+ result = fence_action(conn, options, set_power_status, get_power_status, get_outlets_status)
## Logout from system
try:
@@ -93,5 +93,6 @@ def main():
except pexpect.ExceptionPexpect:
pass
+ sys.exit(result)
if __name__ == "__main__":
main()
diff --git a/fence/agents/vmware/fence_vmware.py b/fence/agents/vmware/fence_vmware.py
index 63e9360..b7a8eeb 100644
--- a/fence/agents/vmware/fence_vmware.py
+++ b/fence/agents/vmware/fence_vmware.py
@@ -310,7 +310,9 @@ def main():
fail_usage("Unsupported version of vmrun command! You must use at least version %d!"%(VMRUN_MINIMUM_REQUIRED_VERSION))
# Operate the fencing device
- fence_action(None, options, set_power_status, get_power_status, get_outlets_status)
+ result = fence_action(None, options, set_power_status, get_power_status, get_outlets_status)
+
+ sys.exit(result)
if __name__ == "__main__":
main()
diff --git a/fence/agents/wti/fence_wti.py b/fence/agents/wti/fence_wti.py
index 514bc9d..f5eb169 100644
--- a/fence/agents/wti/fence_wti.py
+++ b/fence/agents/wti/fence_wti.py
@@ -130,7 +130,7 @@ def main():
else:
conn = fence_login(options)
- fence_action(conn, options, set_power_status, get_power_status, get_power_status)
+ result = fence_action(conn, options, set_power_status, get_power_status, get_power_status)
##
## Logout from system
@@ -142,6 +142,8 @@ def main():
pass
except pexpect.ExceptionPexpect:
pass
+
+ sys.exit(result)
if __name__ == "__main__":
main()
More information about the cluster-commits
mailing list