From 6a1b1813733b1f21094d55ecdf48fcfe2c5950ce Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Tue, 22 Aug 2017 20:19:31 +0200 Subject: Handle new power state names Foreman changed power state names in 1.15+. --- foremanhost.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/foremanhost.py b/foremanhost.py index 980743f..0823a06 100644 --- a/foremanhost.py +++ b/foremanhost.py @@ -319,13 +319,14 @@ def set_host_power(hid, state): return json.loads(ret['text'])['power'] -def wait_host_power(hid, state, timeout): +def wait_host_power(hid, states, timeout): while timeout > 0: timeout -= 2 time.sleep(2) cur_state = get_host_power(hid) - if cur_state == state: - return state + module.debug("cur_state: %s, want: %s" % (cur_state, states)) + if cur_state in states: + return cur_state return None @@ -520,14 +521,15 @@ def ensure_power_state(hid, state, power_timeout): if state == 'present': state = 'poweredOn' if cur_state != state: - waitfor, action = ('poweredOff', 'stop') if cur_state == 'poweredOn' else ('poweredOn', 'start') + waitfor, action = (['poweredOff', 'off'], 'stop') if cur_state in ['poweredOn', 'running'] else (['poweredOn', 'running'], 'start') + module.debug("cur_state: %s, waitfor: %s, action: %s" % (cur_state, waitfor, action)) if set_host_power(hid, action): new_state = wait_host_power(hid, waitfor, power_timeout) if new_state: ret = new_state else: module.fail_json( - msg="Host did not enter power state %s in %d seconds" % (waitfor, power_timeout) + msg="Host did not enter power state %s in %d seconds" % (waitfor[0], power_timeout) ) changed = True else: -- cgit v1.2.3