X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=racadm.py;h=8dec87538c21a552f18e9fdff5f3001bfbad4272;hb=9ea6c9bfc825a684654837886af4291780673eb7;hp=e627f10db7a0d3ead004c4ea7224ea72347166ad;hpb=712a08efaa504476f16652eda324911d535f682e;p=monitor.git diff --git a/racadm.py b/racadm.py index e627f10..8dec875 100755 --- a/racadm.py +++ b/racadm.py @@ -1,6 +1,10 @@ #!/usr/bin/python import threading +import socket +import os +import popen2 +#import logger def runcmd(command, args, username, password, timeout = None): @@ -72,14 +76,14 @@ def runcmd(command, args, username, password, timeout = None): out += "; output follows:\n" + data raise Exception, out -def racadm_reboot(host, username, password, dryrun): +def racadm_reboot(host, username, password, dryrun, state="powercycle"): ip = socket.gethostbyname(host) try: cmd = "/usr/sbin/racadm" os.stat(cmd) if not dryrun: - output = runcmd(cmd, ["-r %s -i serveraction powercycle" % ip], + output = runcmd(cmd, ["-r %s -i serveraction %s" % (ip, state)], username, password) else: output = runcmd(cmd, ["-r %s -i getsysinfo" % ip], @@ -89,17 +93,20 @@ def racadm_reboot(host, username, password, dryrun): return 0 except Exception, err: - logger.debug("runcmd raised exception %s" % err) + #logger.debug("runcmd raised exception %s" % err) + print "runcmd raised exception %s" % err return -1 from optparse import OptionParser parser = OptionParser() -parser.set_defaults(ip="", user="", password="") +parser.set_defaults(ip="", user="", password="", state="powercycle") parser.add_option("-r", "", dest="ip", metavar="nodename.edu", help="A single node name to add to the nodegroup") parser.add_option("-u", "", dest="user", metavar="username", help="") +parser.add_option("-s", "", dest="state", metavar="powercycle", + help="") parser.add_option("-p", "", dest="password", metavar="password", help="") (options, args) = parser.parse_args() @@ -110,6 +117,6 @@ if __name__ == '__main__': options.user is not "" and \ options.password is not "": - racadm_reboot(options.ip, options.user, options.password, False) + racadm_reboot(options.ip, options.user, options.password, False, options.state) else: parser.print_help()