4226d26e9ca14312955fe1853b79d37498036e72
[pti/o2.git] / o2dms / adapter / orm.py
1 # Copyright (C) 2021 Wind River Systems, Inc.\r
2 #\r
3 #  Licensed under the Apache License, Version 2.0 (the "License");\r
4 #  you may not use this file except in compliance with the License.\r
5 #  You may obtain a copy of the License at\r
6 #\r
7 #      http://www.apache.org/licenses/LICENSE-2.0\r
8 #\r
9 #  Unless required by applicable law or agreed to in writing, software\r
10 #  distributed under the License is distributed on an "AS IS" BASIS,\r
11 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
12 #  See the License for the specific language governing permissions and\r
13 #  limitations under the License.\r
14 \r
15 from sqlalchemy import (\r
16     Table,\r
17     MetaData,\r
18     Column,\r
19     Integer,\r
20     String,\r
21     # Date,\r
22     DateTime,\r
23     # ForeignKey,\r
24     # engine,\r
25     # event,\r
26 )\r
27 \r
28 from sqlalchemy.orm import mapper\r
29 from o2dms.domain import dms as dmsModel\r
30 \r
31 from o2common.helper import o2logging\r
32 logger = o2logging.get_logger(__name__)\r
33 \r
34 metadata = MetaData()\r
35 \r
36 nfDeploymentDesc = Table(\r
37     "nfDeploymentDesc",\r
38     metadata,\r
39     Column("updatetime", DateTime),\r
40     Column("createtime", DateTime),\r
41     Column("hash", String(255)),\r
42     Column("version_number", Integer),\r
43 \r
44     Column("id", String(255), primary_key=True),\r
45     Column("deploymentManagerId", String(255)),\r
46     Column("name", String(255)),\r
47     Column("description", String(255)),\r
48     Column("inputParams", String(255)),\r
49     Column("outputParams", String(255)),\r
50     Column("artifactUrl", String(255)),\r
51     # Column("extensions", String(1024))\r
52 )\r
53 \r
54 nfDeployment = Table(\r
55     "nfDeployment",\r
56     metadata,\r
57     Column("updatetime", DateTime),\r
58     Column("createtime", DateTime),\r
59     Column("hash", String(255)),\r
60     Column("version_number", Integer),\r
61 \r
62     Column("id", String(255), primary_key=True),\r
63     Column("deploymentManagerId", String(255)),\r
64     Column("name", String(255)),\r
65     Column("description", String(255)),\r
66     Column("descriptorId", String(255)),\r
67     Column("parentDeploymentId", String(255)),\r
68     Column("status", Integer)\r
69 )\r
70 \r
71 nfOCloudVResource = Table(\r
72     "nfOcloudVRes",\r
73     metadata,\r
74     Column("updatetime", DateTime),\r
75     Column("createtime", DateTime),\r
76     Column("hash", String(255)),\r
77     Column("version_number", Integer),\r
78 \r
79     Column("id", String(255), primary_key=True),\r
80     Column("deploymentManagerId", String(255)),\r
81     Column("name", String(255)),\r
82     Column("description", String(255)),\r
83     Column("descriptorId", String(255)),\r
84     Column("vresourceType", String(255)),\r
85     Column("status", Integer),\r
86     Column("metadata", String(2048)),\r
87     Column("nfDeploymentId", String(255))\r
88 )\r
89 \r
90 \r
91 def start_o2dms_mappers(engine=None):\r
92     logger.info("Starting O2 DMS mappers")\r
93 \r
94     mapper(dmsModel.NfDeploymentDesc, nfDeploymentDesc)\r
95     mapper(dmsModel.NfDeployment, nfDeployment)\r
96     mapper(dmsModel.NfOCloudVResource, nfOCloudVResource)\r
97 \r
98     if engine is not None:\r
99         metadata.create_all(engine)\r