Add: flask api include resource type, resource pool, resource and deployment manager
[pti/o2.git] / o2ims / adapter / orm.py
index 2028538..3bae4e8 100644 (file)
@@ -22,11 +22,11 @@ from sqlalchemy import (
     String,\r
     # Date,\r
     ForeignKey,\r
+    # engine,\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
@@ -38,55 +38,82 @@ ocloud = Table(
     "ocloud",\r
     metadata,\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
-resourcepool = Table(\r
-    "resourcepool",\r
+resourcetype = Table(\r
+    "resourcetype",\r
     metadata,\r
-    Column("resourcePoolId", String(255), primary_key=True),\r
-    Column("name", String(255)),\r
-    Column("location", String(255)),\r
+    Column("resourceTypeId", String(255), primary_key=True),\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
-resourcetype = Table(\r
-    "resourcetype",\r
+resourcepool = Table(\r
+    "resourcepool",\r
     metadata,\r
-    Column("resourceTypeId", String(255), primary_key=True),\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("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
+    # Column("oCloudId", ForeignKey("ocloud.oCloudId")),\r
+    Column("parentId", String(255)),\r
+    Column("description", String(255)),\r
+    # Column("elements", String(255))\r
+    # Column("extensions", String(1024))\r
 )\r
 \r
 deploymentmanager = Table(\r
     "deploymentmanager",\r
     metadata,\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("oCloudId", ForeignKey("ocloud.oCloudId"))\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("subscriptionId", String(255), primary_key=True),\r
+    Column("callback", String(255)),\r
+    Column("consumerSubscriptionId", String(255)),\r
+    Column("filter", String(255)),\r
 )\r
 \r
 \r
-def start_o2ims_mappers():\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
-    # resource_mapper = mapper(ocloudModel.Resource, resource)\r
     mapper(\r
         ocloudModel.Ocloud,\r
         ocloud,\r
@@ -95,3 +122,15 @@ def start_o2ims_mappers():
             "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(ocloudModel.Subscription, subscription)\r
+\r
+    if engine is not None:\r
+        metadata.create_all(engine)\r