aboutsummaryrefslogtreecommitdiffstats
path: root/deploy/dha_adapters/ipmi_adapter.py
diff options
context:
space:
mode:
Diffstat (limited to 'deploy/dha_adapters/ipmi_adapter.py')
-rw-r--r--deploy/dha_adapters/ipmi_adapter.py23
1 files changed, 16 insertions, 7 deletions
diff --git a/deploy/dha_adapters/ipmi_adapter.py b/deploy/dha_adapters/ipmi_adapter.py
index 6ce4012f4..7cc930554 100644
--- a/deploy/dha_adapters/ipmi_adapter.py
+++ b/deploy/dha_adapters/ipmi_adapter.py
@@ -49,7 +49,8 @@ class IpmiAdapter(HardwareAdapter):
def node_get_state(self, node_id):
state = exec_cmd('%s chassis power status' % self.ipmi_cmd(node_id),
attempts=self.attempts, delay=self.delay,
- verbose=True)
+ verbose=True,
+ mask_args=[8,10])
return state
def _node_power_cmd(self, node_id, cmd):
@@ -59,10 +60,12 @@ class IpmiAdapter(HardwareAdapter):
pow_cmd = '%s chassis power %s' % (self.ipmi_cmd(node_id), cmd)
exec_cmd(pow_cmd, attempts=self.attempts, delay=self.delay,
- verbose=True)
+ verbose=True,
+ mask_args=[8,10])
attempts = self.attempts
while attempts:
+ time.sleep(self.delay)
state = self.node_get_state(node_id)
attempts -= 1
if state == expected:
@@ -70,7 +73,7 @@ class IpmiAdapter(HardwareAdapter):
elif attempts != 0:
# reinforce our will, but allow the command to fail,
# we know our message got across once already...
- exec_cmd(pow_cmd, check=False)
+ exec_cmd(pow_cmd, check=False, mask_args=[8,10])
err('Could not set chassis %s for node %s' % (cmd, node_id))
@@ -85,7 +88,9 @@ class IpmiAdapter(HardwareAdapter):
def node_reset(self, node_id):
log('RESET Node %s' % node_id)
cmd = '%s chassis power reset' % self.ipmi_cmd(node_id)
- exec_cmd(cmd, attempts=self.attempts, delay=self.delay, verbose=True)
+ exec_cmd(cmd, attempts=self.attempts, delay=self.delay,
+ verbose=True,
+ mask_args=[8,10])
def node_set_boot_order(self, node_id, boot_order_list):
log('Set boot order %s on Node %s' % (boot_order_list, node_id))
@@ -95,11 +100,15 @@ class IpmiAdapter(HardwareAdapter):
if dev == 'pxe':
exec_cmd('%s chassis bootdev pxe options=persistent'
% cmd_prefix, attempts=self.attempts, delay=self.delay,
- verbose=True)
+ verbose=True,
+ mask_args=[8,10])
elif dev == 'iso':
exec_cmd('%s chassis bootdev cdrom' % cmd_prefix,
- attempts=self.attempts, delay=self.delay, verbose=True)
+ attempts=self.attempts, delay=self.delay,
+ verbose=True,
+ mask_args=[8,10])
elif dev == 'disk':
exec_cmd('%s chassis bootdev disk options=persistent'
% cmd_prefix, attempts=self.attempts, delay=self.delay,
- verbose=True)
+ verbose=True,
+ mask_args=[8,10])