b8c1523606e3d4c2cd0fd5b8743440c2af9bb4be
[pti/o2.git] / o2ims / adapter / clients / orm_stx.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 datetime import datetime\r
16 import logging\r
17 \r
18 from sqlalchemy import (\r
19     Table,\r
20     MetaData,\r
21     Column,\r
22     # Integer,\r
23     String,\r
24     # Date,\r
25     DateTime,\r
26     # engine,\r
27     # ForeignKey,\r
28     # event,\r
29     Enum\r
30 )\r
31 \r
32 from sqlalchemy.orm import mapper\r
33 # from sqlalchemy.sql.sqltypes import Integer\r
34 # from sqlalchemy.sql.expression import true\r
35 \r
36 from o2ims.domain import stx_object as ocloudModel\r
37 # from o2ims.adapter.orm import metadata\r
38 from o2ims.service.unit_of_work import AbstractUnitOfWork\r
39 from o2ims.adapter.unit_of_work import SqlAlchemyUnitOfWork\r
40 from o2ims.domain.resource_type import ResourceTypeEnum\r
41 \r
42 logger = logging.getLogger(__name__)\r
43 \r
44 metadata = MetaData()\r
45 \r
46 stxobject = Table(\r
47     "stxcache",\r
48     metadata,\r
49     Column("id", String(255), primary_key=True),\r
50     Column("type", Enum(ResourceTypeEnum)),\r
51     Column("name", String(255)),\r
52     Column("updatetime", DateTime),\r
53     Column("createtime", DateTime),\r
54     Column("hash", String(255)),\r
55     Column("content", String)\r
56 )\r
57 \r
58 \r
59 def start_o2ims_stx_mappers(uow: AbstractUnitOfWork = SqlAlchemyUnitOfWork()):\r
60     logger.info("Starting O2 IMS Stx mappers")\r
61     mapper(ocloudModel.StxGenericModel, stxobject)\r
62 \r
63     with uow:\r
64         engine1 = uow.session.get_bind()\r
65         metadata.create_all(engine1)\r
66         uow.commit()\r