Update o2dms lcm api
[pti/o2.git] / o2dms / domain / dms_repo.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 abc\r
16 from typing import List, Set\r
17 from o2dms.domain import dms\r
18 \r
19 \r
20 class NfDeploymentRepository(abc.ABC):\r
21     def __init__(self):\r
22         self.seen = set()  # type: Set[dms.NfDeployment]\r
23 \r
24     def add(self, nfdeployment: dms.NfDeployment):\r
25         self._add(nfdeployment)\r
26         self.seen.add(nfdeployment)\r
27 \r
28     def get(self, nfdeployment_id) -> dms.NfDeployment:\r
29         nfdeployment = self._get(nfdeployment_id)\r
30         if nfdeployment:\r
31             self.seen.add(nfdeployment)\r
32         return nfdeployment\r
33 \r
34     def list(self) -> List[dms.NfDeployment]:\r
35         return self._list()\r
36 \r
37     def update(self, id, **kwargs):\r
38         self._update(id, **kwargs)\r
39 \r
40     def delete(self, nfdeployment_id):\r
41         self._delete(nfdeployment_id)\r
42 \r
43     @abc.abstractmethod\r
44     def _add(self, nfdeployment: dms.NfDeployment):\r
45         raise NotImplementedError\r
46 \r
47     @abc.abstractmethod\r
48     def _get(self, nfdeployment_id) -> dms.NfDeployment:\r
49         raise NotImplementedError\r
50 \r
51     @abc.abstractmethod\r
52     def _update(self,  id, **kwargs):\r
53         raise NotImplementedError\r
54 \r
55     @abc.abstractmethod\r
56     def _delete(self, nfdeployment_id):\r
57         raise NotImplementedError\r
58 \r
59 \r
60 class NfDeploymentDescRepository(abc.ABC):\r
61     def __init__(self):\r
62         self.seen = set()  # type: Set[dms.NfDeploymentDesc]\r
63 \r
64     def add(self, nfdeployment_descriptor: dms.NfDeploymentDesc):\r
65         self._add(nfdeployment_descriptor)\r
66         self.seen.add(nfdeployment_descriptor)\r
67 \r
68     def get(self, nfdeployment_descriptor_id) -> dms.NfDeploymentDesc:\r
69         nfdeployment_descriptor = self._get(nfdeployment_descriptor_id)\r
70         if nfdeployment_descriptor:\r
71             self.seen.add(nfdeployment_descriptor)\r
72         return nfdeployment_descriptor\r
73 \r
74     def list(self) -> List[dms.NfDeploymentDesc]:\r
75         return self._list()\r
76 \r
77     def update(self, id, **kwargs):\r
78         self._update(id, **kwargs)\r
79 \r
80     def delete(self, nfdeployment_descriptor_id):\r
81         self._delete(nfdeployment_descriptor_id)\r
82 \r
83     @abc.abstractmethod\r
84     def _add(self, nfdeployment_descriptor: dms.NfDeploymentDesc):\r
85         raise NotImplementedError\r
86 \r
87     @abc.abstractmethod\r
88     def _get(self, nfdeployment_descriptor_id) -> dms.NfDeploymentDesc:\r
89         raise NotImplementedError\r
90 \r
91     @abc.abstractmethod\r
92     def _update(self,  id, **kwargs):\r
93         raise NotImplementedError\r
94 \r
95     @abc.abstractmethod\r
96     def _delete(self, nfdeployment_descriptor_id):\r
97         raise NotImplementedError\r
98 \r
99 \r
100 class NfOCloudVResourceRepository(abc.ABC):\r
101     def __init__(self):\r
102         self.seen = set()  # type: Set[dms.NfOCloudVResource]\r
103 \r
104     def add(self, nfocloudvres: dms.NfOCloudVResource):\r
105         self._add(nfocloudvres)\r
106         self.seen.add(nfocloudvres)\r
107 \r
108     def get(self, nfocloudvres_id) -> dms.NfOCloudVResource:\r
109         nfocloudvres = self._get(nfocloudvres_id)\r
110         if nfocloudvres:\r
111             self.seen.add(nfocloudvres)\r
112         return nfocloudvres\r
113 \r
114     def list(self) -> List[dms.NfOCloudVResource]:\r
115         return self._list()\r
116 \r
117     def update(self, nfocloudvres_id, **kwargs):\r
118         self._update(nfocloudvres_id, **kwargs)\r
119 \r
120     def delete(self, nfocloudvres_id):\r
121         self._delete(nfocloudvres_id)\r
122 \r
123     @abc.abstractmethod\r
124     def _add(self, nfocloudvres: dms.NfOCloudVResource):\r
125         raise NotImplementedError\r
126 \r
127     @abc.abstractmethod\r
128     def _get(self, nfocloudvres_id) -> dms.NfOCloudVResource:\r
129         raise NotImplementedError\r
130 \r
131     @abc.abstractmethod\r
132     def _update(self,  nfocloudvres_id, **kwargs):\r
133         raise NotImplementedError\r
134 \r
135     @abc.abstractmethod\r
136     def _delete(self, nfocloudvres_id):\r
137         raise NotImplementedError\r