X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2ims%2Fservice%2Fauditor%2Falarm_handler.py;h=305e919287837b3e68fc2b1baeee4c22aa948bb8;hb=5c06a061d32abdfefcc2c2d562a444db030f3135;hp=8917264f86ba427ca703d79073eecbe78410f2f6;hpb=f7ef52a5b4ead0472b1b5828471b28c88d2a0aea;p=pti%2Fo2.git diff --git a/o2ims/service/auditor/alarm_handler.py b/o2ims/service/auditor/alarm_handler.py index 8917264..305e919 100644 --- a/o2ims/service/auditor/alarm_handler.py +++ b/o2ims/service/auditor/alarm_handler.py @@ -19,7 +19,7 @@ import json # from o2common.config import config # from o2common.service.messagebus import MessageBus from o2common.service.unit_of_work import AbstractUnitOfWork -from o2ims.domain import events, commands, alarm_obj +from o2ims.domain import events, commands, alarm_obj, ocloud from o2ims.domain.alarm_obj import AlarmEventRecord, FaultGenericModel,\ AlarmNotificationEventEnum @@ -37,8 +37,8 @@ def update_alarm( + " id: " + str(fmobj.id) + " hash: " + str(fmobj.hash)) with uow: - logger.debug('+++test alarm dict:' + - str(len(uow.alarm_dictionaries.list()))) + resourcepool = uow.resource_pools.get(cmd.parentid) + alarm_event_record = uow.alarm_event_records.get(fmobj.id) if not alarm_event_record: logger.info("add alarm event record:" + fmobj.name @@ -54,26 +54,32 @@ def update_alarm( # TODO: handle different resource type hostname = entity_instance_id.split('.')[0].split('=')[1] logger.debug('hostname: ' + hostname) - respools = uow.resource_pools.list() - respoolids = [respool.resourcePoolId for respool in - respools if respool.oCloudId == - respool.resourcePoolId] + restype = uow.resource_types.get_by_name('pserver') localmodel.resourceTypeId = restype.resourceTypeId - hosts = uow.resources.list(respoolids[0], **{ - 'resourceTypeId': restype.resourceTypeId - }) + args = [ocloud.Resource.resourceTypeId == + restype.resourceTypeId] + hosts = uow.resources.list(resourcepool.resourcePoolId, *args) for host in hosts: - if host.name == hostname: + logger.debug('host extensions: ' + host.extensions) + extensions = json.loads(host.extensions) + if extensions['hostname'] == hostname: localmodel.resourceId = host.resourceId uow.alarm_event_records.add(localmodel) logger.info("Add the alarm event record: " + fmobj.id + ", name: " + fmobj.name) - # localmodel.resourceTypeId = check_restype_id(uow, fmobj) - # logger.debug("resource type ID: " + localmodel.resourceTypeId) - # localmodel.resourceId = check_res_id(uow, fmobj) - # logger.debug("resource ID: " + localmodel.resourceId) - # uow.alarm_event_records.add(localmodel) + else: + restype = uow.resource_types.get_by_name('undefined_aggregate') + localmodel.resourceTypeId = restype.resourceTypeId + + args = [ocloud.Resource.resourceTypeId == + restype.resourceTypeId] + undefined_res = uow.resources.list( + resourcepool.resourcePoolId, *args) + localmodel.resourceId = undefined_res[0].resourceId + uow.alarm_event_records.add(localmodel) + logger.info("Add the alarm event record: " + fmobj.id + + ", name: " + fmobj.name) else: localmodel = alarm_event_record