Add o2dms api endpoint
[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 NfDeploymentDescRepository(abc.ABC):\r
21     def __init__(self):\r
22         self.seen = set()  # type: Set[dms.NfDeploymentDesc]\r
23 \r
24     def add(self, nfdeployment_descriptor: dms.NfDeploymentDesc):\r
25         self._add(nfdeployment_descriptor)\r
26         self.seen.add(nfdeployment_descriptor)\r
27 \r
28     def get(self, nfdeployment_descriptor_id) -> dms.NfDeploymentDesc:\r
29         nfdeployment_descriptor = self._get(nfdeployment_descriptor_id)\r
30         if nfdeployment_descriptor:\r
31             self.seen.add(nfdeployment_descriptor)\r
32         return nfdeployment_descriptor\r
33 \r
34     def list(self) -> List[dms.NfDeploymentDesc]:\r
35         return self._list()\r
36 \r
37     def update(self, nfdeployment_descriptor: dms.NfDeploymentDesc):\r
38         self._update(nfdeployment_descriptor)\r
39 \r
40     @abc.abstractmethod\r
41     def _add(self, nfdeployment_descriptor: dms.NfDeploymentDesc):\r
42         raise NotImplementedError\r
43 \r
44     @abc.abstractmethod\r
45     def _get(self, nfdeployment_descriptor_id) -> dms.NfDeploymentDesc:\r
46         raise NotImplementedError\r
47 \r
48     @abc.abstractmethod\r
49     def _update(self, nfdeployment_descriptor: dms.NfDeploymentDesc):\r
50         raise NotImplementedError\r