X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=pcucontrol%2Freboot.py;h=83c96d1fad2cda77e509f97ae629cbdf66dabb2b;hb=51e66ab7b975799462e6b6c93494f4781fecacf7;hp=eef8d2e2ea094122e00790d60b1622304f948d57;hpb=fec28d68cc164e581c476ee93fd4b4b68ef939fd;p=pcucontrol.git diff --git a/pcucontrol/reboot.py b/pcucontrol/reboot.py index eef8d2e..83c96d1 100755 --- a/pcucontrol/reboot.py +++ b/pcucontrol/reboot.py @@ -357,14 +357,27 @@ class BasicPCUControl(PCUModel): PCUModel.__init__(self, plc_pcu_record) def run_expect_script(self, scriptname, **args): + print "Running EXPECT: %s" % scriptname locfg = command.CMD() + if 'ip' in args: + host = self.ip + else: + host = self.host + + print args + if 'sequence' in args: + seq = " ".join(args['sequence']) + seq = "'%s'" % seq + else: + seq = "" + cmd_str = get_python_lib(1) + "/pcucontrol/models/exp/" - cmd = cmd_str + "%s %s %s '%s' %s %s " % ( - scriptname, self.host, self.username, - self.password, args['dryrun'], args['model']) + cmd = cmd_str + "%s %s %s '%s' %s %s %s" % ( + scriptname, host, self.username, + self.password, args['dryrun'], args['model'], seq) print cmd - cmd_out, cmd_err = locfg.run_noexcept(cmd) + cmd_out, cmd_err = locfg.run_noexcept("expect " + cmd) return cmd_out.strip() + cmd_err.strip() def reboot(self, node_port, dryrun): @@ -524,6 +537,21 @@ def reboot_test_new(nodename, values, verbose, dryrun): return rb_ret +def reboot_simple(nodeid, values, verbose, dryrun): + rb_ret = "" + try: + # Find the index of the given nodeid; use the same index in the ports list + port = values['ports'][values['node_ids'].index(nodeid)] + object = eval('%s(values, verbose)' % values['model']) + rb_ret = object.reboot(port, dryrun) + # TODO: how to handle the weird, georgetown pcus, the drac faults, and ilo faults? + except ExceptionPort, err: + rb_ret = str(err) + except NameError, err: + rb_ret = str(err) + + return rb_ret + def main(): print "this does not work."