X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2dms%2Fdomain%2Fdms_repo.py;fp=o2dms%2Fdomain%2Fdms_repo.py;h=f199a3c186083dc39c53c25c5b467ec8ce2e1c8d;hb=5e02e76308e1677fb106572b885a366eb6c0fbec;hp=0000000000000000000000000000000000000000;hpb=de778bc19d9329d3c1c3c536bfd702423102277b;p=pti%2Fo2.git diff --git a/o2dms/domain/dms_repo.py b/o2dms/domain/dms_repo.py new file mode 100644 index 0000000..f199a3c --- /dev/null +++ b/o2dms/domain/dms_repo.py @@ -0,0 +1,50 @@ +# Copyright (C) 2021 Wind River Systems, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import abc +from typing import List, Set +from o2dms.domain import dms + + +class NfDeploymentDescRepository(abc.ABC): + def __init__(self): + self.seen = set() # type: Set[dms.NfDeploymentDesc] + + def add(self, nfdeployment_descriptor: dms.NfDeploymentDesc): + self._add(nfdeployment_descriptor) + self.seen.add(nfdeployment_descriptor) + + def get(self, nfdeployment_descriptor_id) -> dms.NfDeploymentDesc: + nfdeployment_descriptor = self._get(nfdeployment_descriptor_id) + if nfdeployment_descriptor: + self.seen.add(nfdeployment_descriptor) + return nfdeployment_descriptor + + def list(self) -> List[dms.NfDeploymentDesc]: + return self._list() + + def update(self, nfdeployment_descriptor: dms.NfDeploymentDesc): + self._update(nfdeployment_descriptor) + + @abc.abstractmethod + def _add(self, nfdeployment_descriptor: dms.NfDeploymentDesc): + raise NotImplementedError + + @abc.abstractmethod + def _get(self, nfdeployment_descriptor_id) -> dms.NfDeploymentDesc: + raise NotImplementedError + + @abc.abstractmethod + def _update(self, nfdeployment_descriptor: dms.NfDeploymentDesc): + raise NotImplementedError