diff --git a/resource.py b/resource.py index 4ecb45bdb243fb93e1e645c2136403edcc6fc63e..d7186026065ee54847a8308ded5d9f711eba64fc 100644 --- a/resource.py +++ b/resource.py @@ -606,25 +606,27 @@ def get_rsc_status(rsc_info): return "Running" -def get_rsc_failed_message(): +def get_rsc_failed_message(): cmd = "crm_mon -1 --as-xml" status, stdout = common_utils.run_cmd(cmd) json_str = json.dumps(xmltodict.parse(stdout)) json_dict = json.loads(json_str) - - #print(json_dict['crm_mon']['failures']) - failures = json_dict['crm_mon']['failures']['failure'] failure_info = {} - for failure in failures: - info_failure = {} - rsc_id = failure['@op_key'].replace('_start_0', '').replace('_stop_0', '') - node = failure['@node'] - exitreason = failure['@exitreason'] - info_failure['node'] = node - info_failure['exitreason'] = exitreason - failure_info[rsc_id] = info_failure + + if 'failures' in json_dict['crm_mon']: + # print(json_dict['crm_mon']['failures']) + failures = json_dict['crm_mon']['failures']['failure'] + for failure in failures: + info_failure = {} + rsc_id = failure['@op_key'].replace('_start_0', '').replace('_stop_0', '') + node = failure['@node'] + exitreason = failure['@exitreason'] + info_failure['node'] = node + info_failure['exitreason'] = exitreason + failure_info[rsc_id] = info_failure + return failure_info def update_rsc_failed_info():