--- /dev/null
+# Copyright (C) 2021 Wind River Systems, Inc.\r
+#\r
+# Licensed under the Apache License, Version 2.0 (the "License");\r
+# you may not use this file except in compliance with the License.\r
+# You may obtain a copy of the License at\r
+#\r
+# http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+# Unless required by applicable law or agreed to in writing, software\r
+# distributed under the License is distributed on an "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+# See the License for the specific language governing permissions and\r
+# limitations under the License.\r
+\r
+import logging\r
+\r
+from sqlalchemy import (\r
+ Table,\r
+ MetaData,\r
+ Column,\r
+ Integer,\r
+ String,\r
+ Date,\r
+ ForeignKey,\r
+ event,\r
+)\r
+\r
+from sqlalchemy.orm import mapper, relationship\r
+from sqlalchemy.sql.expression import true\r
+\r
+from o2ims.domain import ocloud as ocloudModel\r
+\r
+logger = logging.getLogger(__name__)\r
+\r
+metadata = MetaData()\r
+\r
+ocloud = Table(\r
+ "ocloud",\r
+ metadata,\r
+ Column("oCloudId", String(255), primary_key=True),\r
+ Column("name", String(255)),\r
+ Column("description", String(255)),\r
+ Column("infrastructureManagementServiceEndpoint", String(255))\r
+)\r
+\r
+resourcepool = Table(\r
+ "resourcepool",\r
+ metadata,\r
+ Column("resourcePoolId", String(255), primary_key=True),\r
+ Column("name", String(255)),\r
+ Column("location", String(255)),\r
+ Column("oCloudId", ForeignKey("ocloud.oCloudId")),\r
+ # Column("extensions", String(1024))\r
+)\r
+\r
+resourcetype = Table(\r
+ "resourcetype",\r
+ metadata,\r
+ Column("resourceTypeId", String(255), primary_key=True),\r
+ Column("oCloudId", ForeignKey("ocloud.oCloudId")),\r
+ Column("name", String(255)),\r
+)\r
+\r
+resource = Table(\r
+ "resource",\r
+ metadata,\r
+ Column("resourceId", String(255), primary_key=True),\r
+ Column("parentId", String(255)),\r
+ Column("resourceTypeId", ForeignKey("resourcetype.resourceTypeId")),\r
+ Column("resourcePoolId", ForeignKey("resourcepool.resourcePoolId")),\r
+ Column("oCloudId", ForeignKey("ocloud.oCloudId"))\r
+)\r
+\r
+deploymentmanager = Table(\r
+ "deploymentmanager",\r
+ metadata,\r
+ Column("deploymentManagerId", String(255), primary_key=True),\r
+ Column("name", String(255)),\r
+ Column("deploymentManagementServiceEndpoint", String(255)),\r
+ Column("oCloudId", ForeignKey("ocloud.oCloudId"))\r
+)\r
+\r
+\r
+def start_o2ims_mappers():\r
+ logger.info("Starting O2 IMS mappers")\r
+ dm_mapper = mapper(ocloudModel.DeploymentManager, deploymentmanager)\r
+ resourcepool_mapper = mapper(ocloudModel.ResourcePool, resourcepool)\r
+ resourcetype_mapper = mapper(ocloudModel.ResourceType, resourcetype)\r
+ resource_mapper = mapper(ocloudModel.Resource, resource)\r
+ ocloud_mapper = mapper(\r
+ ocloudModel.Ocloud,\r
+ ocloud,\r
+ properties={\r
+ "deploymentManagers": relationship(dm_mapper),\r
+ "resourceTypes": relationship(resourcetype_mapper),\r
+ "resourcePools": relationship(resourcepool_mapper)\r
+ })\r