diff options
Diffstat (limited to 'cobbler/action_power.py')
-rw-r--r-- | cobbler/action_power.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/cobbler/action_power.py b/cobbler/action_power.py index 9db4535c..789750a1 100644 --- a/cobbler/action_power.py +++ b/cobbler/action_power.py @@ -31,6 +31,7 @@ import os.path import sub_process import sys import traceback +import time import utils from cexceptions import * @@ -106,7 +107,15 @@ class PowerTool: #if not os.path.exists(tool_needed): # print "warning: %s does not seem to be installed" % tool_needed - rc = sub_process.call(cmd, shell=False, close_fds=True) + # Try the power command 5 times before giving up. + # Some power switches are flakey + for x in range(0,5): + rc = sub_process.call(cmd, shell=False, close_fds=True) + if rc == 0: + break + else: + time.sleep(2) + if not rc == 0: raise CX("command failed (rc=%s), please validate the physical setup and cobbler config" % rc) @@ -137,6 +146,8 @@ class PowerTool: "lpar" : os.path.join(powerdir,"power_lpar.template"), "bladecenter": os.path.join(powerdir,"power_bladecenter.template"), "virsh" : os.path.join(powerdir,"power_virsh.template"), + "integrity" : os.path.join(powerdir,"power_integrity.template"), + "wti" : os.path.join(powerdir,"power_wti.template"), } result = map.get(self.system.power_type, "") |