summaryrefslogtreecommitdiffstats
path: root/cobbler/action_power.py
diff options
context:
space:
mode:
Diffstat (limited to 'cobbler/action_power.py')
-rw-r--r--cobbler/action_power.py13
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, "")