Stop processing state properties after REST failure.
Change-Id: I964397ad40be7f73c40e3a35d2de3864766c34e5
Signed-off-by: Michael Walsh <micwalsh@us.ibm.com>
diff --git a/lib/state.py b/lib/state.py
index e9b9fab..6c5ec27 100755
--- a/lib/state.py
+++ b/lib/state.py
@@ -517,6 +517,16 @@
packet_loss = ''
uptime = ''
epoch_seconds = ''
+ rest = ''
+ chassis = ''
+ requested_chassis = ''
+ bmc = ''
+ requested_bmc = ''
+ boot_progress = ''
+ operating_system = ''
+ host = ''
+ requested_host = ''
+ attempts_left = ''
# Get the component states.
if 'ping' in req_states:
@@ -588,21 +598,24 @@
else:
state['rest'] = '0'
- for url_path in ret_values:
- for attr_name in ret_values[url_path]:
- # Create a state key value based on the attr_name.
- if type(ret_values[url_path][attr_name]) is unicode:
- ret_values[url_path][attr_name] = \
- re.sub(r'.*\.', "", ret_values[url_path][attr_name])
- # Do some key name manipulations.
- new_attr_name = re.sub(r'^Current|(State|Transition)$',
- "", attr_name)
- new_attr_name = re.sub(r'BMC', r'Bmc', new_attr_name)
- new_attr_name = re.sub(r'([A-Z][a-z])', r'_\1', new_attr_name)
- new_attr_name = new_attr_name.lower().lstrip("_")
- new_attr_name = re.sub(r'power', r'chassis', new_attr_name)
- if new_attr_name in req_states:
- state[new_attr_name] = ret_values[url_path][attr_name]
+ if int(state['rest']):
+ for url_path in ret_values:
+ for attr_name in ret_values[url_path]:
+ # Create a state key value based on the attr_name.
+ if type(ret_values[url_path][attr_name]) is unicode:
+ ret_values[url_path][attr_name] = \
+ re.sub(r'.*\.', "",
+ ret_values[url_path][attr_name])
+ # Do some key name manipulations.
+ new_attr_name = re.sub(r'^Current|(State|Transition)$',
+ "", attr_name)
+ new_attr_name = re.sub(r'BMC', r'Bmc', new_attr_name)
+ new_attr_name = re.sub(r'([A-Z][a-z])', r'_\1',
+ new_attr_name)
+ new_attr_name = new_attr_name.lower().lstrip("_")
+ new_attr_name = re.sub(r'power', r'chassis', new_attr_name)
+ if new_attr_name in req_states:
+ state[new_attr_name] = ret_values[url_path][attr_name]
for sub_state in req_states:
if sub_state in state: