+\r
+\r
+class DeploymentManagerRepository(abc.ABC):\r
+ def __init__(self):\r
+ self.seen = set() # type: Set[ocloud.DeploymentManager]\r
+\r
+ def add(self, deployment_manager: ocloud.DeploymentManager):\r
+ self._add(deployment_manager)\r
+ self.seen.add(deployment_manager)\r
+\r
+ def get(self, deployment_manager_id) -> ocloud.DeploymentManager:\r
+ deployment_manager = self._get(deployment_manager_id)\r
+ if deployment_manager:\r
+ self.seen.add(deployment_manager)\r
+ return deployment_manager\r
+\r
+ def list(self) -> List[ocloud.DeploymentManager]:\r
+ return self._list()\r
+\r
+ def update(self, deployment_manager: ocloud.DeploymentManager):\r
+ self._update(deployment_manager)\r
+\r
+ @abc.abstractmethod\r
+ def _add(self, deployment_manager: ocloud.DeploymentManager):\r
+ raise NotImplementedError\r
+\r
+ @abc.abstractmethod\r
+ def _get(self, deployment_manager_id) -> ocloud.DeploymentManager:\r
+ raise NotImplementedError\r
+\r
+ @abc.abstractmethod\r
+ def _update(self, deployment_manager: ocloud.DeploymentManager):\r
+ raise NotImplementedError\r