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 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
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("serviceUri", 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),
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())
- # Column("extensions", String(1024))
+ Column("description", String()),
+ Column("elements", Text()),
+ Column("extensions", String())
)
deploymentmanager = Table(
- "deploymentmanager",
+ "deploymentManager",
metadata,
Column("updatetime", DateTime),
Column("createtime", DateTime),
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)),
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,
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")),
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(
)
mapper(subModel.Subscription, subscription)
- # 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)