f970517fb318aad1323c4c301093f8a4fd82d058
[pti/o2.git] / o2ims / views / ocloud_view.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 import uuid\r
16 \r
17 from o2common.service import unit_of_work\r
18 from o2ims.views.ocloud_dto import SubscriptionDTO\r
19 from o2ims.domain.ocloud import Subscription\r
20 \r
21 \r
22 def oclouds(uow: unit_of_work.AbstractUnitOfWork):\r
23     with uow:\r
24         li = uow.oclouds.list()\r
25     return [r.serialize() for r in li]\r
26 \r
27 \r
28 def ocloud_one(ocloudid: str, uow: unit_of_work.AbstractUnitOfWork):\r
29     with uow:\r
30         first = uow.oclouds.get(ocloudid)\r
31         return first.serialize() if first is not None else None\r
32 \r
33 \r
34 def resource_types(uow: unit_of_work.AbstractUnitOfWork):\r
35     with uow:\r
36         li = uow.resource_types.list()\r
37     return [r.serialize() for r in li]\r
38 \r
39 \r
40 def resource_type_one(resourceTypeId: str,\r
41                       uow: unit_of_work.AbstractUnitOfWork):\r
42     with uow:\r
43         first = uow.resource_types.get(resourceTypeId)\r
44         print(first)\r
45         return first.serialize() if first is not None else None\r
46 \r
47 \r
48 def resource_pools(uow: unit_of_work.AbstractUnitOfWork):\r
49     with uow:\r
50         li = uow.resource_pools.list()\r
51     return [r.serialize() for r in li]\r
52 \r
53 \r
54 def resource_pool_one(resourcePoolId: str,\r
55                       uow: unit_of_work.AbstractUnitOfWork):\r
56     with uow:\r
57         first = uow.resource_pools.get(resourcePoolId)\r
58         return first.serialize() if first is not None else None\r
59 \r
60 \r
61 def resources(resourcePoolId: str, uow: unit_of_work.AbstractUnitOfWork):\r
62     with uow:\r
63         li = uow.resources.list(resourcePoolId)\r
64     return [r.serialize() for r in li]\r
65 \r
66 \r
67 def resource_one(resourceId: str, uow: unit_of_work.AbstractUnitOfWork):\r
68     with uow:\r
69         first = uow.resources.get(resourceId)\r
70         return first.serialize() if first is not None else None\r
71 \r
72 \r
73 def deployment_managers(uow: unit_of_work.AbstractUnitOfWork):\r
74     with uow:\r
75         li = uow.deployment_managers.list()\r
76     return [r.serialize() for r in li]\r
77 \r
78 \r
79 def deployment_manager_one(deploymentManagerId: str,\r
80                            uow: unit_of_work.AbstractUnitOfWork):\r
81     with uow:\r
82         first = uow.deployment_managers.get(deploymentManagerId)\r
83         return first.serialize() if first is not None else None\r
84 \r
85 \r
86 def subscriptions(uow: unit_of_work.AbstractUnitOfWork):\r
87     with uow:\r
88         li = uow.subscriptions.list()\r
89     return [r.serialize() for r in li]\r
90 \r
91 \r
92 def subscription_one(subscriptionId: str,\r
93                      uow: unit_of_work.AbstractUnitOfWork):\r
94     with uow:\r
95         first = uow.subscriptions.get(subscriptionId)\r
96         return first.serialize() if first is not None else None\r
97 \r
98 \r
99 def subscription_create(subscriptionDto: SubscriptionDTO.subscription,\r
100                         uow: unit_of_work.AbstractUnitOfWork):\r
101 \r
102     sub_uuid = str(uuid.uuid4())\r
103     subscription = Subscription(\r
104         sub_uuid, subscriptionDto['callback'],\r
105         subscriptionDto['consumerSubscriptionId'],\r
106         subscriptionDto['filter'])\r
107     with uow:\r
108         uow.subscriptions.add(subscription)\r
109         uow.commit()\r
110     return {"subscriptionId": sub_uuid}\r
111 \r
112 \r
113 def subscription_delete(subscriptionId: str,\r
114                         uow: unit_of_work.AbstractUnitOfWork):\r
115     with uow:\r
116         uow.subscriptions.delete(subscriptionId)\r
117         uow.commit()\r
118     return True\r