Convert file endlines to Unix (LF)
[pti/o2.git] / o2ims / adapter / orm.py
index 43b48b0..45ec4d8 100644 (file)
-# 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
-# from typing_extensions import Required\r
-from retry import retry\r
-from sqlalchemy import (\r
-    Table,\r
-    MetaData,\r
-    Column,\r
-    Integer,\r
-    String,\r
-    Text,\r
-    Enum,\r
-    # Date,\r
-    DateTime,\r
-    ForeignKey,\r
-    # Boolean,\r
-    # engine,\r
-    # event,\r
-    exc,\r
-)\r
-\r
-from sqlalchemy.orm import mapper, relationship\r
-# from sqlalchemy.sql.sqltypes import Integer\r
-\r
-from o2ims.domain import ocloud as ocloudModel\r
-from o2ims.domain import subscription_obj as subModel\r
-from o2ims.domain import configuration_obj as confModel\r
-from o2ims.domain.resource_type import ResourceTypeEnum\r
-\r
-from o2common.helper import o2logging\r
-logger = o2logging.get_logger(__name__)\r
-\r
-metadata = MetaData()\r
-\r
-ocloud = Table(\r
-    "ocloud",\r
-    metadata,\r
-    Column("updatetime", DateTime),\r
-    Column("createtime", DateTime),\r
-    Column("hash", String(255)),\r
-    Column("version_number", Integer),\r
-\r
-    Column("oCloudId", String(255), primary_key=True),\r
-    Column("globalcloudId", String(255)),\r
-    Column("name", String(255)),\r
-    Column("description", String(255)),\r
-    Column("infrastructureManagementServiceEndpoint", String(255))\r
-    # Column("extensions", String(1024))\r
-)\r
-\r
-resourcetype = Table(\r
-    "resourcetype",\r
-    metadata,\r
-    Column("updatetime", DateTime),\r
-    Column("createtime", DateTime),\r
-    Column("hash", String(255)),\r
-\r
-    Column("resourceTypeId", String(255), primary_key=True),\r
-    Column("resourceTypeEnum", Enum(\r
-        ResourceTypeEnum, native_enum=False), nullable=False),\r
-    Column("oCloudId", ForeignKey("ocloud.oCloudId")),\r
-    Column("name", String(255)),\r
-    Column("vendor", String(255)),\r
-    Column("model", String(255)),\r
-    Column("version", String(255)),\r
-    Column("description", String(255)),\r
-    # Column("extensions", String(1024))\r
-)\r
-\r
-resourcepool = Table(\r
-    "resourcepool",\r
-    metadata,\r
-    Column("updatetime", DateTime),\r
-    Column("createtime", DateTime),\r
-    Column("hash", String(255)),\r
-    Column("version_number", Integer),\r
-\r
-    Column("resourcePoolId", String(255), primary_key=True),\r
-    Column("oCloudId", ForeignKey("ocloud.oCloudId")),\r
-    Column("globalLocationId", String(255)),\r
-    Column("name", String(255)),\r
-    Column("location", String(255)),\r
-    Column("description", String(255)),\r
-    # Column("resources", String(1024))\r
-    # Column("extensions", String(1024))\r
-)\r
-\r
-resource = Table(\r
-    "resource",\r
-    metadata,\r
-    Column("updatetime", DateTime),\r
-    Column("createtime", DateTime),\r
-    Column("hash", String(255)),\r
-    Column("version_number", Integer),\r
-\r
-    Column("resourceId", String(255), primary_key=True),\r
-    Column("resourceTypeId", ForeignKey("resourcetype.resourceTypeId")),\r
-    Column("resourcePoolId", ForeignKey("resourcepool.resourcePoolId")),\r
-    Column("name", String(255)),\r
-    # Column("globalAssetId", String(255)),\r
-    Column("parentId", String(255)),\r
-    Column("description", String(255)),\r
-    Column("elements", Text())\r
-    # Column("extensions", String(1024))\r
-)\r
-\r
-deploymentmanager = Table(\r
-    "deploymentmanager",\r
-    metadata,\r
-    Column("updatetime", DateTime),\r
-    Column("createtime", DateTime),\r
-    Column("hash", String(255)),\r
-    Column("version_number", Integer),\r
-\r
-    Column("deploymentManagerId", String(255), primary_key=True),\r
-    Column("oCloudId", ForeignKey("ocloud.oCloudId")),\r
-    Column("name", String(255)),\r
-    Column("description", String(255)),\r
-    Column("deploymentManagementServiceEndpoint", String(255)),\r
-    Column("supportedLocations", String(255)),\r
-    Column("capabilities", String(255)),\r
-    Column("capacity", String(255)),\r
-    # Column("extensions", String(1024))\r
-)\r
-\r
-subscription = Table(\r
-    "subscription",\r
-    metadata,\r
-    Column("updatetime", DateTime),\r
-    Column("createtime", DateTime),\r
-    Column("hash", String(255)),\r
-    Column("version_number", Integer),\r
-\r
-    Column("subscriptionId", String(255), primary_key=True),\r
-    Column("callback", String(255)),\r
-    Column("consumerSubscriptionId", String(255)),\r
-    Column("filter", String(255)),\r
-)\r
-\r
-configuration = Table(\r
-    "configuration",\r
-    metadata,\r
-    Column("updatetime", DateTime),\r
-    Column("createtime", DateTime),\r
-\r
-    Column("configurationId", String(255), primary_key=True),\r
-    Column("conftype", String(255)),\r
-    Column("callback", String(255)),\r
-    Column("status", String(255)),\r
-    Column("comments", String(255)),\r
-)\r
-\r
-\r
-@retry((exc.IntegrityError), tries=3, delay=2)\r
-def wait_for_metadata_ready(engine):\r
-    # wait for mapper ready\r
-    metadata.create_all(engine, checkfirst=True)\r
-    logger.info("metadata is ready")\r
-\r
-\r
-def start_o2ims_mappers(engine=None):\r
-    logger.info("Starting O2 IMS mappers")\r
-\r
-    dm_mapper = mapper(ocloudModel.DeploymentManager, deploymentmanager)\r
-    resourcepool_mapper = mapper(ocloudModel.ResourcePool, resourcepool)\r
-    resourcetype_mapper = mapper(ocloudModel.ResourceType, resourcetype)\r
-    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
-    mapper(\r
-        ocloudModel.Resource,\r
-        resource,\r
-        properties={\r
-            "resourceTypes": relationship(resourcetype_mapper),\r
-            "resourcePools": relationship(resourcepool_mapper)\r
-        }\r
-    )\r
-    mapper(subModel.Subscription, subscription)\r
-    mapper(confModel.Configuration, configuration)\r
-\r
-    if engine is not None:\r
-        wait_for_metadata_ready(engine)\r
+# Copyright (C) 2021 Wind River Systems, Inc.
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+# from typing_extensions import Required
+from retry import retry
+from sqlalchemy import (
+    Table,
+    MetaData,
+    Column,
+    Integer,
+    String,
+    Text,
+    Enum,
+    # Date,
+    DateTime,
+    ForeignKey,
+    # Boolean,
+    # engine,
+    # event,
+    exc,
+)
+
+from sqlalchemy.orm import mapper, relationship
+# 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
+
+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))
+)
+
+resourcetype = Table(
+    "resourcetype",
+    metadata,
+    Column("updatetime", DateTime),
+    Column("createtime", DateTime),
+    Column("hash", String(255)),
+
+    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("vendor", String(255)),
+    Column("model", String(255)),
+    Column("version", String(255)),
+    Column("description", String(255)),
+    # Column("extensions", String(1024))
+)
+
+resourcepool = Table(
+    "resourcepool",
+    metadata,
+    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("resourceTypeId", ForeignKey("resourcetype.resourceTypeId")),
+    Column("resourcePoolId", ForeignKey("resourcepool.resourcePoolId")),
+    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("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)),
+)
+
+
+@retry((exc.IntegrityError), tries=3, delay=2)
+def wait_for_metadata_ready(engine):
+    # wait for mapper ready
+    metadata.create_all(engine, checkfirst=True)
+    logger.info("metadata is ready")
+
+
+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)
+    mapper(
+        ocloudModel.Ocloud,
+        ocloud,
+        properties={
+            "deploymentManagers": relationship(dm_mapper),
+            "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:
+        wait_for_metadata_ready(engine)