# -*- encoding: utf-8 -*- # # Copyright (c) 2014 Wind River Systems, Inc. # # Author: # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. import sys from fm_api import fm_api from fm_api import constants ser = fm_api.FaultAPIs() def print_alarm(alarm): alarm_str = "alarm_id: " + alarm.alarm_id + ", " alarm_str += "uuid: " + alarm.uuid + ", " alarm_str += "alarm_type: " + alarm.alarm_type + "\n" alarm_str += "state: " + alarm.alarm_state + ", " alarm_str += "severity: " + alarm.severity + ", " alarm_str += "entity_type_id: " + alarm.entity_type_id + ", " alarm_str += "timestamp: " + alarm.timestamp + "\n" alarm_str += "entity_instance_id: " + alarm.entity_instance_id + ", " alarm_str += "probable cause:" + alarm.probable_cause + "\n" print(alarm_str) def create(): fault = fm_api.Fault(alarm_id=constants.FM_ALARM_ID_VM_FAILED, alarm_state=constants.FM_ALARM_STATE_SET, entity_type_id=constants.FM_ENTITY_TYPE_INSTANCE, entity_instance_id=constants.FM_ENTITY_TYPE_INSTANCE + '=' + 'a4e4cdb7-2ee6-4818-84c8-5310fcd67b5d', severity=constants.FM_ALARM_SEVERITY_CRITICAL, reason_text="Unknown", alarm_type=constants.FM_ALARM_TYPE_5, probable_cause=constants.ALARM_PROBABLE_CAUSE_8, proposed_repair_action=None, service_affecting=False, suppression=False) uuid = ser.set_fault(fault) print(uuid) def delete(alarm_id, instance_id): ret = ser.clear_fault(alarm_id, instance_id) print("Delete fault return %s" % str(ret)) def del_all(instance_id): ret = ser.clear_all(instance_id) print("Delete faults return: %s" % str(ret)) def get(alarm_id, instance_id): a = ser.get_fault(alarm_id, instance_id) if a is not None: print_alarm(a) else: print("Alarm not found") def get_all(instance_id): ll = ser.get_faults(instance_id) if ll is not None: print("Total alarm returned: %d\n" % len(ll)) for i in ll: print_alarm(i) else: print("No alarm returned") def get_list(alarm_id): ll = ser.get_faults_by_id(alarm_id) if ll is not None: print("Total alarm returned: %d\n" % len(ll)) for i in ll: print_alarm(i) else: print("No alarm returned") if __name__ == "__main__": if sys.argv[1] == "create": sys.exit(create()) elif sys.argv[1] == "del": sys.exit(delete(sys.argv[2], sys.argv[3])) elif sys.argv[1] == "get": sys.exit(get(sys.argv[2], sys.argv[3])) elif sys.argv[1] == "get_all": sys.exit(get_all(sys.argv[2])) elif sys.argv[1] == "del_all": sys.exit(del_all(sys.argv[2])) elif sys.argv[1] == "get_list": sys.exit(get_list(sys.argv[2]))