bc3557d4eed40dfacde7b5a4dd139816842f732d
[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, DeploymentManagerRepository,\
20     SubscriptionRepository
21 from o2common.helper import o2logging
22 logger = o2logging.get_logger(__name__)
23
24
25 class OcloudSqlAlchemyRepository(OcloudRepository):
26     def __init__(self, session):
27         super().__init__()
28         self.session = session
29
30     def _add(self, ocloud: ocloud.Ocloud):
31         self.session.add(ocloud)
32         # self.session.add_all(ocloud.deploymentManagers)
33
34     def _get(self, ocloud_id) -> ocloud.Ocloud:
35         return self.session.query(ocloud.Ocloud).filter_by(
36             oCloudId=ocloud_id).first()
37
38     def _list(self) -> List[ocloud.Ocloud]:
39         return self.session.query(ocloud.Ocloud).order_by(
40             ocloud.Ocloud.name).all()
41
42     def _update(self, ocloud: ocloud.Ocloud):
43         self.session.add(ocloud)
44
45
46 class ResouceTypeSqlAlchemyRepository(ResourceTypeRepository):
47     def __init__(self, session):
48         super().__init__()
49         self.session = session
50
51     def _add(self, resourceType: ocloud.ResourceType):
52         self.session.add(resourceType)
53
54     def _get(self, resource_type_id) -> ocloud.ResourceType:
55         return self.session.query(ocloud.ResourceType).filter_by(
56             resourceTypeId=resource_type_id).first()
57
58     def _list(self) -> List[ocloud.ResourceType]:
59         return self.session.query()
60
61     def _update(self, resourceType: ocloud.ResourceType):
62         self.session.add(resourceType)
63
64
65 class ResourcePoolSqlAlchemyRepository(ResourcePoolRepository):
66     def __init__(self, session):
67         super().__init__()
68         self.session = session
69
70     def _add(self, resourcePool: ocloud.ResourcePool):
71         self.session.add(resourcePool)
72
73     def _get(self, resource_pool_id) -> ocloud.ResourcePool:
74         return self.session.query(ocloud.ResourcePool).filter_by(
75             resourcePoolId=resource_pool_id).first()
76
77     def _list(self) -> List[ocloud.ResourcePool]:
78         return self.session.query()
79
80     def _update(self, resourcePool: ocloud.ResourcePool):
81         self.session.add(resourcePool)
82
83
84 class ResourceSqlAlchemyRepository(ResourceRepository):
85     def __init__(self, session):
86         super().__init__()
87         self.session = session
88
89     def _add(self, resource: ocloud.Resource):
90         self.session.add(resource)
91
92     def _get(self, resource_id) -> ocloud.Resource:
93         return self.session.query(ocloud.Resource).filter_by(
94             resourceId=resource_id).first()
95
96     def _list(self) -> List[ocloud.Resource]:
97         return self.session.query()
98
99     def _update(self, resource: ocloud.Resource):
100         self.session.add(resource)
101
102
103 class DeploymentManagerSqlAlchemyRepository(DeploymentManagerRepository):
104     def __init__(self, session):
105         super().__init__()
106         self.session = session
107
108     def _add(self, deployment_manager: ocloud.DeploymentManager):
109         self.session.add(deployment_manager)
110
111     def _get(self, deployment_manager_id) -> ocloud.DeploymentManager:
112         return self.session.query(ocloud.DeploymentManager).filter_by(
113             deploymentManagerId=deployment_manager_id).first()
114
115     def _list(self) -> List[ocloud.DeploymentManager]:
116         return self.session.query()
117
118     def _update(self, deployment_manager: ocloud.DeploymentManager):
119         self.session.add(deployment_manager)
120
121
122 class SubscriptionSqlAlchemyRepository(SubscriptionRepository):
123     def __init__(self, session):
124         super().__init__()
125         self.session = session
126
127     def _add(self, subscription: ocloud.Subscription):
128         self.session.add(subscription)
129
130     def _get(self, subscription_id) -> ocloud.Subscription:
131         return self.session.query(ocloud.Subscription).filter_by(
132             subscriptionId=subscription_id).first()
133
134     def _list(self) -> List[ocloud.Subscription]:
135         return self.session.query()
136
137     def _update(self, subscription: ocloud.Subscription):
138         self.session.add(subscription)
139
140     def _delete(self, subscription_id):
141         self.session.query(ocloud.Subscription).filter_by(
142             subscriptionId=subscription_id).delete()