# 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
+ " id: " + str(fmobj.id)
+ " hash: " + str(fmobj.hash))
with uow:
+ 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
# 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