X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2ims%2Fadapter%2Form.py;h=eaefe169e50991c2976f7c3fae9337833dcdc8fe;hb=748a90298e8abff7f1ff2fdec6a36c2775fe7161;hp=4775f29dd5941e807273858ba7916213920666ab;hpb=d2f6cc674bf3623caf114a8d7709e70d55ec9340;p=pti%2Fo2.git diff --git a/o2ims/adapter/orm.py b/o2ims/adapter/orm.py index 4775f29..eaefe16 100644 --- a/o2ims/adapter/orm.py +++ b/o2ims/adapter/orm.py @@ -31,14 +31,13 @@ from sqlalchemy import ( exc, ) -from sqlalchemy.orm import mapper, relationship +from sqlalchemy.orm import mapper, relationship, backref # from sqlalchemy.sql.sqltypes import Integer 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.resource_type import ResourceTypeEnum, ResourceKindEnum # from o2ims.domain.alarm_obj import AlarmLastChangeEnum, PerceivedSeverityEnum from o2common.helper import o2logging @@ -55,34 +54,39 @@ ocloud = Table( Column("version_number", Integer), Column("oCloudId", String(255), primary_key=True), - Column("globalcloudId", String(255)), + Column("globalCloudId", String(255)), Column("name", String(255)), Column("description", String(255)), - Column("infrastructureManagementServiceEndpoint", String(255)) + Column("serviceUri", String(255)), + Column("smoRegistrationService", String(255)) # Column("extensions", String(1024)) ) resourcetype = Table( - "resourcetype", + "resourceType", metadata, Column("updatetime", DateTime), Column("createtime", DateTime), Column("hash", String(255)), + Column("version_number", Integer), Column("resourceTypeId", String(255), primary_key=True), Column("resourceTypeEnum", Enum( ResourceTypeEnum, native_enum=False), nullable=False), - Column("oCloudId", ForeignKey("ocloud.oCloudId")), Column("name", String(255)), + Column("description", String(255)), Column("vendor", String(255)), Column("model", String(255)), Column("version", String(255)), - Column("description", String(255)), + Column("resourceKind", Enum(ResourceKindEnum)), + Column("resourceClass", Enum(ResourceTypeEnum)), # Column("extensions", String(1024)) + + Column("alarmDictionaryId", ForeignKey("alarmDictionary.id")) ) resourcepool = Table( - "resourcepool", + "resourcePool", metadata, Column("updatetime", DateTime), Column("createtime", DateTime), @@ -108,10 +112,10 @@ resource = Table( Column("version_number", Integer), Column("resourceId", String(255), primary_key=True), - Column("resourceTypeId", ForeignKey("resourcetype.resourceTypeId")), - Column("resourcePoolId", ForeignKey("resourcepool.resourcePoolId")), + Column("resourceTypeId", ForeignKey("resourceType.resourceTypeId")), + Column("resourcePoolId", ForeignKey("resourcePool.resourcePoolId")), Column("name", String(255)), - # Column("globalAssetId", String(255)), + Column("globalAssetId", String(255)), Column("parentId", String(255)), Column("description", String(255)), Column("elements", Text()) @@ -119,7 +123,7 @@ resource = Table( ) deploymentmanager = Table( - "deploymentmanager", + "deploymentManager", metadata, Column("updatetime", DateTime), Column("createtime", DateTime), @@ -130,7 +134,7 @@ deploymentmanager = Table( Column("oCloudId", ForeignKey("ocloud.oCloudId")), Column("name", String(255)), Column("description", String(255)), - Column("deploymentManagementServiceEndpoint", String(255)), + Column("serviceUri", String(255)), Column("supportedLocations", String(255)), Column("capabilities", String(255)), Column("capacity", String(255)), @@ -152,19 +156,6 @@ subscription = Table( Column("filter", String(255)), ) -configuration = Table( - "configuration", - metadata, - Column("updatetime", DateTime), - Column("createtime", DateTime), - - Column("configurationId", String(255), primary_key=True), - Column("conftype", String(255)), - Column("callback", String(255)), - Column("status", String(255)), - Column("comments", String(255)), -) - alarm_definition = Table( "alarmDefinition", metadata, @@ -174,13 +165,40 @@ alarm_definition = Table( Column("alarmDefinitionId", String(255), primary_key=True), Column("alarmName", String(255), unique=True), Column("alarmLastChange", String(255)), + Column("alarmChangeType", String(255)), Column("alarmDescription", String(255)), - Column("proposeRepairActions", String(255)), + Column("proposedRepairActions", String(1024)), Column("clearingType", String(255)), Column("managementInterfaceId", String(255)), Column("pkNotificationField", String(255)) ) +alarm_dictionary = Table( + "alarmDictionary", + metadata, + Column("updatetime", DateTime), + Column("createtime", DateTime), + + Column("id", String(255), primary_key=True), + Column("entityType", String(255), unique=True), + Column("alarmDictionaryVersion", String(255)), + Column("alarmDictionarySchemaVersion", String(255)), + Column("vendor", String(255)), + Column("managementInterfaceId", String(255)), + Column("pkNotificationField", String(255)) + + # Column("resourceTypeId", ForeignKey("resourceType.resourceTypeId")) +) + +association_table1 = Table( + 'associationAlarmDictAndAlarmDef', + metadata, + Column("alarmDictionaryId", ForeignKey( + 'alarmDictionary.id', ondelete='cascade')), + Column("alarmDefinitionId", ForeignKey( + 'alarmDefinition.alarmDefinitionId')) +) + alarm_event_record = Table( "alarmEventRecord", metadata, @@ -189,7 +207,7 @@ alarm_event_record = Table( Column("hash", String(255)), Column("alarmEventRecordId", String(255), primary_key=True), - Column("resourceTypeId", ForeignKey("resourcetype.resourceTypeId")), + Column("resourceTypeId", ForeignKey("resourceType.resourceTypeId")), Column("resourceId", ForeignKey("resource.resourceId")), Column("alarmDefinitionId", ForeignKey( "alarmDefinition.alarmDefinitionId")), @@ -236,16 +254,43 @@ def wait_for_metadata_ready(engine): def start_o2ims_mappers(engine=None): logger.info("Starting O2 IMS mappers") + # IMS Infrastruture Monitoring Mappering + mapper(alarmModel.AlarmEventRecord, alarm_event_record) + alarmdefinition_mapper = mapper( + alarmModel.AlarmDefinition, alarm_definition) + mapper(alarmModel.ProbableCause, alarm_probable_cause) + mapper(alarmModel.AlarmSubscription, alarm_subscription) + alarm_dictionary_mapper = mapper( + alarmModel.AlarmDictionary, alarm_dictionary, + properties={ + "alarmDefinition": relationship(alarmdefinition_mapper, + cascade='all,delete-orphan', + secondary=association_table1, + single_parent=True, + backref='alarmDictionaries') + } + ) + # IMS Infrastructure Inventory Mappering dm_mapper = mapper(ocloudModel.DeploymentManager, deploymentmanager) resourcepool_mapper = mapper(ocloudModel.ResourcePool, resourcepool) - resourcetype_mapper = mapper(ocloudModel.ResourceType, resourcetype) + resourcetype_mapper = mapper( + ocloudModel.ResourceType, resourcetype, + properties={ + # "alarmDictionary": relationship(alarmModel.AlarmDictionary, + # uselist=False) + "alarmDictionary": relationship(alarm_dictionary_mapper, + backref=backref( + 'resourceType', uselist=False)) + + } + ) mapper( ocloudModel.Ocloud, ocloud, properties={ "deploymentManagers": relationship(dm_mapper), - "resourceTypes": relationship(resourcetype_mapper), + # "resourceTypes": relationship(resourcetype_mapper), "resourcePools": relationship(resourcepool_mapper) }) mapper( @@ -257,13 +302,6 @@ 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)