X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2ims%2Fadapter%2Form.py;h=f59a235bb5e19f572ee1fc2c715a73239a50c710;hb=209f349b35b0919ac133bc2264f25753a73e5b8f;hp=20285380795495f09884b40e4bca5ee219d4c1c0;hpb=81e3575a77366f30c2049f98c48a3087db0ea992;p=pti%2Fo2.git diff --git a/o2ims/adapter/orm.py b/o2ims/adapter/orm.py index 2028538..f59a235 100644 --- a/o2ims/adapter/orm.py +++ b/o2ims/adapter/orm.py @@ -12,81 +12,160 @@ # See the License for the specific language governing permissions and # limitations under the License. -import logging - +# from typing_extensions import Required from sqlalchemy import ( Table, MetaData, Column, - # Integer, + Integer, String, + Text, + Enum, # Date, + DateTime, ForeignKey, + # Boolean, + # engine, # event, ) from sqlalchemy.orm import mapper, relationship -# from sqlalchemy.sql.expression import true +# 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.resource_type import ResourceTypeEnum -logger = logging.getLogger(__name__) +from o2common.helper import o2logging +logger = o2logging.get_logger(__name__) metadata = MetaData() ocloud = Table( "ocloud", metadata, + Column("updatetime", DateTime), + Column("createtime", DateTime), + Column("hash", String(255)), + Column("version_number", Integer), + Column("oCloudId", String(255), primary_key=True), + Column("globalcloudId", String(255)), Column("name", String(255)), Column("description", String(255)), Column("infrastructureManagementServiceEndpoint", String(255)) + # Column("extensions", String(1024)) ) -resourcepool = Table( - "resourcepool", +resourcetype = Table( + "resourcetype", metadata, - Column("resourcePoolId", String(255), primary_key=True), - Column("name", String(255)), - Column("location", String(255)), + Column("updatetime", DateTime), + Column("createtime", DateTime), + Column("hash", String(255)), + + Column("resourceTypeId", String(255), primary_key=True), + Column("resourceTypeEnum", Enum(ResourceTypeEnum), nullable=False), Column("oCloudId", ForeignKey("ocloud.oCloudId")), + Column("name", String(255)), + Column("vendor", String(255)), + Column("model", String(255)), + Column("version", String(255)), + Column("description", String(255)), # Column("extensions", String(1024)) ) -resourcetype = Table( - "resourcetype", +resourcepool = Table( + "resourcepool", metadata, - Column("resourceTypeId", String(255), primary_key=True), + Column("updatetime", DateTime), + Column("createtime", DateTime), + Column("hash", String(255)), + Column("version_number", Integer), + + Column("resourcePoolId", String(255), primary_key=True), Column("oCloudId", ForeignKey("ocloud.oCloudId")), + Column("globalLocationId", String(255)), Column("name", String(255)), + Column("location", String(255)), + Column("description", String(255)), + # Column("resources", String(1024)) + # Column("extensions", String(1024)) ) resource = Table( "resource", metadata, + Column("updatetime", DateTime), + Column("createtime", DateTime), + Column("hash", String(255)), + Column("version_number", Integer), + Column("resourceId", String(255), primary_key=True), - Column("parentId", String(255)), Column("resourceTypeId", ForeignKey("resourcetype.resourceTypeId")), Column("resourcePoolId", ForeignKey("resourcepool.resourcePoolId")), - Column("oCloudId", ForeignKey("ocloud.oCloudId")) + Column("name", String(255)), + # Column("globalAssetId", String(255)), + Column("parentId", String(255)), + Column("description", String(255)), + Column("elements", Text()) + # Column("extensions", String(1024)) ) deploymentmanager = Table( "deploymentmanager", metadata, + Column("updatetime", DateTime), + Column("createtime", DateTime), + Column("hash", String(255)), + Column("version_number", Integer), + Column("deploymentManagerId", String(255), primary_key=True), + Column("oCloudId", ForeignKey("ocloud.oCloudId")), Column("name", String(255)), + Column("description", String(255)), Column("deploymentManagementServiceEndpoint", String(255)), - Column("oCloudId", ForeignKey("ocloud.oCloudId")) + Column("supportedLocations", String(255)), + Column("capabilities", String(255)), + Column("capacity", String(255)), + # Column("extensions", String(1024)) +) + +subscription = Table( + "subscription", + metadata, + Column("updatetime", DateTime), + Column("createtime", DateTime), + Column("hash", String(255)), + Column("version_number", Integer), + + Column("subscriptionId", String(255), primary_key=True), + Column("callback", String(255)), + Column("consumerSubscriptionId", String(255)), + 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)), ) -def start_o2ims_mappers(): +def start_o2ims_mappers(engine=None): logger.info("Starting O2 IMS mappers") + dm_mapper = mapper(ocloudModel.DeploymentManager, deploymentmanager) resourcepool_mapper = mapper(ocloudModel.ResourcePool, resourcepool) resourcetype_mapper = mapper(ocloudModel.ResourceType, resourcetype) - # resource_mapper = mapper(ocloudModel.Resource, resource) mapper( ocloudModel.Ocloud, ocloud, @@ -95,3 +174,16 @@ def start_o2ims_mappers(): "resourceTypes": relationship(resourcetype_mapper), "resourcePools": relationship(resourcepool_mapper) }) + mapper( + ocloudModel.Resource, + resource, + properties={ + "resourceTypes": relationship(resourcetype_mapper), + "resourcePools": relationship(resourcepool_mapper) + } + ) + mapper(subModel.Subscription, subscription) + mapper(confModel.Configuration, configuration) + + if engine is not None: + metadata.create_all(engine)