1 # Copyright (C) 2021 Wind River Systems, Inc.
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
15 from typing import List
16 # from o2ims.adapter import orm
17 from o2ims.domain import ocloud
18 from o2ims.domain.ocloud_repo import OcloudRepository, ResourceTypeRepository,\
19 ResourcePoolRepository, ResourceRepository
22 class OcloudSqlAlchemyRepository(OcloudRepository):
23 def __init__(self, session):
25 self.session = session
27 def _add(self, ocloud: ocloud.Ocloud):
28 self.session.add(ocloud)
29 # self.session.add_all(ocloud.deploymentManagers)
31 def _get(self, ocloud_id) -> ocloud.Ocloud:
32 return self.session.query(ocloud.Ocloud).filter_by(
33 oCloudId=ocloud_id).first()
35 def _list(self) -> List[ocloud.Ocloud]:
36 return self.session.query(ocloud.Ocloud).order_by(
37 ocloud.Ocloud.name).all()
39 def _update(self, ocloud: ocloud.Ocloud):
40 self.session.add(ocloud)
43 class ResouceTypeSqlAlchemyRepository(ResourceTypeRepository):
44 def __init__(self, session):
46 self.session = session
48 def _add(self, resourceType: ocloud.ResourceType):
49 self.session.add(resourceType)
51 def _get(self, resource_type_id) -> ocloud.ResourceType:
52 return self.session.query(ocloud.ResourceType).filter_by(
53 resourceTypeId=resource_type_id).first()
55 def _list(self) -> List[ocloud.ResourceType]:
56 return self.session.query()
58 def _update(self, resourceType: ocloud.ResourceType):
59 self.session.add(resourceType)
62 class ResourcePoolSqlAlchemyRepository(ResourcePoolRepository):
63 def __init__(self, session):
65 self.session = session
67 def _add(self, resourcePool: ocloud.ResourcePool):
68 self.session.add(resourcePool)
70 def _get(self, resource_pool_id) -> ocloud.ResourcePool:
71 return self.session.query(ocloud.ResourcePool).filter_by(
72 resourcePoolId=resource_pool_id).first()
74 def _list(self) -> List[ocloud.ResourcePool]:
75 return self.session.query()
77 def _update(self, resourcePool: ocloud.ResourcePool):
78 self.session.add(resourcePool)
81 class ResourceSqlAlchemyRepository(ResourceRepository):
82 def __init__(self, session):
84 self.session = session
86 def _add(self, resource: ocloud.Resource):
87 self.session.add(resource)
89 def _get(self, resource_id) -> ocloud.Resource:
90 return self.session.query(ocloud.Resource).filter_by(
91 resourceId=resource_id).first()
93 def _list(self) -> List[ocloud.Resource]:
94 return self.session.query()
96 def _update(self, resource: ocloud.Resource):
97 self.session.add(resource)