4a63a852be43e5a7600f08d551db7afbbbc1cc04
[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     def count(self, **kwargs):\r
44         return self._count(**kwargs)\r
45 \r
46     @abc.abstractmethod\r
47     def _add(self, nfdeployment: dms.NfDeployment):\r
48         raise NotImplementedError\r
49 \r
50     @abc.abstractmethod\r
51     def _get(self, nfdeployment_id) -> dms.NfDeployment:\r
52         raise NotImplementedError\r
53 \r
54     @abc.abstractmethod\r
55     def _update(self,  id, **kwargs):\r
56         raise NotImplementedError\r
57 \r
58     @abc.abstractmethod\r
59     def _delete(self, nfdeployment_id):\r
60         raise NotImplementedError\r
61 \r
62     @abc.abstractmethod\r
63     def _count(self, **kwargs):\r
64         raise NotImplementedError\r
65 \r
66 \r
67 class NfDeploymentDescRepository(abc.ABC):\r
68     def __init__(self):\r
69         self.seen = set()  # type: Set[dms.NfDeploymentDesc]\r
70 \r
71     def add(self, nfdeployment_descriptor: dms.NfDeploymentDesc):\r
72         self._add(nfdeployment_descriptor)\r
73         self.seen.add(nfdeployment_descriptor)\r
74 \r
75     def get(self, nfdeployment_descriptor_id) -> dms.NfDeploymentDesc:\r
76         nfdeployment_descriptor = self._get(nfdeployment_descriptor_id)\r
77         if nfdeployment_descriptor:\r
78             self.seen.add(nfdeployment_descriptor)\r
79         return nfdeployment_descriptor\r
80 \r
81     def list(self) -> List[dms.NfDeploymentDesc]:\r
82         return self._list()\r
83 \r
84     def update(self, id, **kwargs):\r
85         self._update(id, **kwargs)\r
86 \r
87     def delete(self, nfdeployment_descriptor_id):\r
88         self._delete(nfdeployment_descriptor_id)\r
89 \r
90     def count(self, **kwargs):\r
91         return self._count(**kwargs)\r
92 \r
93     @abc.abstractmethod\r
94     def _add(self, nfdeployment_descriptor: dms.NfDeploymentDesc):\r
95         raise NotImplementedError\r
96 \r
97     @abc.abstractmethod\r
98     def _get(self, nfdeployment_descriptor_id) -> dms.NfDeploymentDesc:\r
99         raise NotImplementedError\r
100 \r
101     @abc.abstractmethod\r
102     def _update(self,  id, **kwargs):\r
103         raise NotImplementedError\r
104 \r
105     @abc.abstractmethod\r
106     def _delete(self, nfdeployment_descriptor_id):\r
107         raise NotImplementedError\r
108 \r
109     @abc.abstractmethod\r
110     def _count(self, **kwargs):\r
111         raise NotImplementedError\r
112 \r
113 \r
114 class NfOCloudVResourceRepository(abc.ABC):\r
115     def __init__(self):\r
116         self.seen = set()  # type: Set[dms.NfOCloudVResource]\r
117 \r
118     def add(self, nfocloudvres: dms.NfOCloudVResource):\r
119         self._add(nfocloudvres)\r
120         self.seen.add(nfocloudvres)\r
121 \r
122     def get(self, nfocloudvres_id) -> dms.NfOCloudVResource:\r
123         nfocloudvres = self._get(nfocloudvres_id)\r
124         if nfocloudvres:\r
125             self.seen.add(nfocloudvres)\r
126         return nfocloudvres\r
127 \r
128     def list(self) -> List[dms.NfOCloudVResource]:\r
129         return self._list()\r
130 \r
131     def update(self, nfocloudvres_id, **kwargs):\r
132         self._update(nfocloudvres_id, **kwargs)\r
133 \r
134     def delete(self, nfocloudvres_id):\r
135         self._delete(nfocloudvres_id)\r
136 \r
137     @abc.abstractmethod\r
138     def _add(self, nfocloudvres: dms.NfOCloudVResource):\r
139         raise NotImplementedError\r
140 \r
141     @abc.abstractmethod\r
142     def _get(self, nfocloudvres_id) -> dms.NfOCloudVResource:\r
143         raise NotImplementedError\r
144 \r
145     @abc.abstractmethod\r
146     def _update(self,  nfocloudvres_id, **kwargs):\r
147         raise NotImplementedError\r
148 \r
149     @abc.abstractmethod\r
150     def _delete(self, nfocloudvres_id):\r
151         raise NotImplementedError\r