X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=o2ims%2Fadapter%2Form.py;fp=o2ims%2Fadapter%2Form.py;h=4775f29dd5941e807273858ba7916213920666ab;hb=d2f6cc674bf3623caf114a8d7709e70d55ec9340;hp=cb3a694c68970b0f0e5833dc713142e9fe590eed;hpb=c76580a35c3461254e1d8c91025019f52f723021;p=pti%2Fo2.git diff --git a/o2ims/adapter/orm.py b/o2ims/adapter/orm.py index cb3a694..4775f29 100644 --- a/o2ims/adapter/orm.py +++ b/o2ims/adapter/orm.py @@ -37,7 +37,9 @@ from sqlalchemy.orm import mapper, relationship from o2ims.domain import ocloud as ocloudModel from o2ims.domain import subscription_obj as subModel from o2ims.domain import configuration_obj as confModel +from o2ims.domain import alarm_obj as alarmModel from o2ims.domain.resource_type import ResourceTypeEnum +# from o2ims.domain.alarm_obj import AlarmLastChangeEnum, PerceivedSeverityEnum from o2common.helper import o2logging logger = o2logging.get_logger(__name__) @@ -163,6 +165,66 @@ configuration = Table( Column("comments", String(255)), ) +alarm_definition = Table( + "alarmDefinition", + metadata, + Column("updatetime", DateTime), + Column("createtime", DateTime), + + Column("alarmDefinitionId", String(255), primary_key=True), + Column("alarmName", String(255), unique=True), + Column("alarmLastChange", String(255)), + Column("alarmDescription", String(255)), + Column("proposeRepairActions", String(255)), + Column("clearingType", String(255)), + Column("managementInterfaceId", String(255)), + Column("pkNotificationField", String(255)) +) + +alarm_event_record = Table( + "alarmEventRecord", + metadata, + Column("updatetime", DateTime), + Column("createtime", DateTime), + Column("hash", String(255)), + + Column("alarmEventRecordId", String(255), primary_key=True), + Column("resourceTypeId", ForeignKey("resourcetype.resourceTypeId")), + Column("resourceId", ForeignKey("resource.resourceId")), + Column("alarmDefinitionId", ForeignKey( + "alarmDefinition.alarmDefinitionId")), + Column("probableCauseId", String(255)), + Column("perceivedSeverity", Integer), + Column("alarmRaisedTime", String(255)), + Column("alarmChangedTime", String(255)), + Column("alarmAcknowledgeTime", String(255)), + Column("alarmAcknowledged", String(255)), +) + +alarm_probable_cause = Table( + "probableCause", + metadata, + Column("updatetime", DateTime), + Column("createtime", DateTime), + Column("hash", String(255)), + + Column("probableCauseId", String(255), primary_key=True), + Column("name", String(255)), + Column("description", String(255)), +) + +alarm_subscription = Table( + "alarmSubscription", + metadata, + Column("updatetime", DateTime), + Column("createtime", DateTime), + + Column("alarmSubscriptionId", String(255), primary_key=True), + Column("callback", String(255)), + Column("consumerSubscriptionId", String(255)), + Column("filter", String(255)), +) + @retry((exc.IntegrityError), tries=3, delay=2) def wait_for_metadata_ready(engine): @@ -174,6 +236,7 @@ def wait_for_metadata_ready(engine): def start_o2ims_mappers(engine=None): logger.info("Starting O2 IMS mappers") + # IMS Infrastructure Inventory Mappering dm_mapper = mapper(ocloudModel.DeploymentManager, deploymentmanager) resourcepool_mapper = mapper(ocloudModel.ResourcePool, resourcepool) resourcetype_mapper = mapper(ocloudModel.ResourceType, resourcetype) @@ -196,5 +259,11 @@ def start_o2ims_mappers(engine=None): mapper(subModel.Subscription, subscription) mapper(confModel.Configuration, configuration) + # IMS Infrastruture Monitoring Mappering + mapper(alarmModel.AlarmEventRecord, alarm_event_record) + mapper(alarmModel.AlarmDefinition, alarm_definition) + mapper(alarmModel.ProbableCause, alarm_probable_cause) + mapper(alarmModel.AlarmSubscription, alarm_subscription) + if engine is not None: wait_for_metadata_ready(engine)