improve error handling and reporting for hpilos.
[pcucontrol.git] / pcucontrol / reboot.py
index d4f8be6..f7c2810 100755 (executable)
@@ -12,6 +12,7 @@ import urllib
 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
@@ -106,6 +107,7 @@ class Transport:
        HTTP   = "http"
        HTTPS  = "https"
        IPAL   = "ipal"
+        IPMI   = "ipmi"
        DRAC   = "drac"
        AMT    = "amt"
 
@@ -118,6 +120,7 @@ class Transport:
                        443 : HTTPS,
                        80 :  HTTP,
                        9100 : IPAL,
+                        623 : IPMI,
                        16992 : AMT,
                }
 
@@ -379,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:
@@ -391,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