5fa9b7e05863229af30a1927265b804c455f97d3
[pti/o2.git] / o2ims / adapter / ocloud_repository.py
1 # Copyright (C) 2021 Wind River Systems, Inc.
2 #
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
6 #
7 #      http://www.apache.org/licenses/LICENSE-2.0
8 #
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.
14
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
20
21
22 class OcloudSqlAlchemyRepository(OcloudRepository):
23     def __init__(self, session):
24         super().__init__()
25         self.session = session
26
27     def _add(self, ocloud: ocloud.Ocloud):
28         self.session.add(ocloud)
29         # self.session.add_all(ocloud.deploymentManagers)
30
31     def _get(self, ocloud_id) -> ocloud.Ocloud:
32         return self.session.query(ocloud.Ocloud).filter_by(
33             oCloudId=ocloud_id).first()
34
35     def _list(self) -> List[ocloud.Ocloud]:
36         return self.session.query(ocloud.Ocloud).order_by(
37             ocloud.Ocloud.name).all()
38
39     def _update(self, ocloud: ocloud.Ocloud):
40         self.session.add(ocloud)
41
42
43 class ResouceTypeSqlAlchemyRepository(ResourceTypeRepository):
44     def __init__(self, session):
45         super().__init__()
46         self.session = session
47
48     def _add(self, resourceType: ocloud.ResourceType):
49         self.session.add(resourceType)
50
51     def _get(self, resource_type_id) -> ocloud.ResourceType:
52         return self.session.query(ocloud.ResourceType).filter_by(
53             resourceTypeId=resource_type_id).first()
54
55     def _list(self) -> List[ocloud.ResourceType]:
56         return self.session.query()
57
58     def _update(self, resourceType: ocloud.ResourceType):
59         self.session.add(resourceType)
60
61
62 class ResourcePoolSqlAlchemyRepository(ResourcePoolRepository):
63     def __init__(self, session):
64         super().__init__()
65         self.session = session
66
67     def _add(self, resourcePool: ocloud.ResourcePool):
68         self.session.add(resourcePool)
69
70     def _get(self, resource_pool_id) -> ocloud.ResourcePool:
71         return self.session.query(ocloud.ResourcePool).filter_by(
72             resourcePoolId=resource_pool_id).first()
73
74     def _list(self) -> List[ocloud.ResourcePool]:
75         return self.session.query()
76
77     def _update(self, resourcePool: ocloud.ResourcePool):
78         self.session.add(resourcePool)
79
80
81 class ResourceSqlAlchemyRepository(ResourceRepository):
82     def __init__(self, session):
83         super().__init__()
84         self.session = session
85
86     def _add(self, resource: ocloud.Resource):
87         self.session.add(resource)
88
89     def _get(self, resource_id) -> ocloud.Resource:
90         return self.session.query(ocloud.Resource).filter_by(
91             resourceId=resource_id).first()
92
93     def _list(self) -> List[ocloud.Resource]:
94         return self.session.query()
95
96     def _update(self, resource: ocloud.Resource):
97         self.session.add(resource)