improve error handling and reporting for hpilos.
[pcucontrol.git] / pcucontrol / reboot.py
index d8fdb27..f7c2810 100755 (executable)
@@ -9,10 +9,10 @@ import xml, xmlrpclib
 import errno, time, traceback
 import urllib2
 import urllib
-import threading, popen2
 import array, struct
 import base64
 from subprocess import PIPE, Popen
+import subprocess
 import pcucontrol.transports.ssh.pxssh as pxssh
 import pcucontrol.transports.ssh.pexpect as pexpect
 import socket
@@ -107,6 +107,7 @@ class Transport:
        HTTP   = "http"
        HTTPS  = "https"
        IPAL   = "ipal"
+        IPMI   = "ipmi"
        DRAC   = "drac"
        AMT    = "amt"
 
@@ -119,6 +120,7 @@ class Transport:
                        443 : HTTPS,
                        80 :  HTTP,
                        9100 : IPAL,
+                        623 : IPMI,
                        16992 : AMT,
                }
 
@@ -380,7 +382,7 @@ def model_to_object(modelname):
                print "UNKNOWN model %s"%modelname
                return Unknown
 
-def reboot_api(node, pcu):
+def reboot_api(node, pcu, testrun=False):
        rb_ret = ""
 
        try:
@@ -392,7 +394,7 @@ def reboot_api(node, pcu):
                        i = pcu['node_ids'].index(node['node_id'])
                        p = pcu['ports'][i]
                        # reboot
-                       rb_ret = instance.reboot(p, False)
+                       rb_ret = instance.reboot(p, testrun)
                else:
                        rb_ret =  "No modelname in PCU record."
                # TODO: how to handle the weird, georgetown pcus, the drac faults, and ilo faults