Pagination in request and response; Fix alarm client issue
[pti/o2.git] / o2ims / domain / ocloud_repo.py
index 811e85c..9f86c9d 100644 (file)
@@ -13,7 +13,7 @@
 #  limitations under the License.
 
 import abc
-from typing import List, Set
+from typing import List, Set, Tuple
 from o2ims.domain import ocloud
 
 
@@ -74,8 +74,12 @@ class ResourceTypeRepository(abc.ABC):
             self.seen.add(resource_type)
         return resource_type
 
-    def list(self) -> List[ocloud.ResourceType]:
-        return self._list()
+    def list(self, **kwargs) -> List[ocloud.ResourceType]:
+        return self._list(**kwargs)[1]
+
+    def list_with_count(self, **kwargs) -> \
+            Tuple[int, List[ocloud.ResourceType]]:
+        return self._list(**kwargs)
 
     def update(self, resource_type: ocloud.ResourceType):
         self._update(resource_type)
@@ -93,6 +97,10 @@ class ResourceTypeRepository(abc.ABC):
     def _get_by_name(self, resource_type_name) -> ocloud.ResourceType:
         raise NotImplementedError
 
+    @abc.abstractmethod
+    def _list(self, **kwargs) -> Tuple[int, List[ocloud.ResourceType]]:
+        raise NotImplementedError
+
     @abc.abstractmethod
     def _update(self, resource_type: ocloud.ResourceType):
         raise NotImplementedError
@@ -112,8 +120,12 @@ class ResourcePoolRepository(abc.ABC):
             self.seen.add(resource_pool)
         return resource_pool
 
-    def list(self) -> List[ocloud.ResourcePool]:
-        return self._list()
+    def list(self, **kwargs) -> List[ocloud.ResourcePool]:
+        return self._list(**kwargs)[1]
+
+    def list_with_count(self, **kwargs) -> \
+            Tuple[int, List[ocloud.ResourcePool]]:
+        return self._list(**kwargs)
 
     def update(self, resource_pool: ocloud.ResourcePool):
         self._update(resource_pool)
@@ -127,6 +139,10 @@ class ResourcePoolRepository(abc.ABC):
     def _get(self, resource_pool_id) -> ocloud.ResourcePool:
         raise NotImplementedError
 
+    @abc.abstractmethod
+    def _list(self, **kwargs) -> Tuple[int, List[ocloud.ResourcePool]]:
+        raise NotImplementedError
+
     @abc.abstractmethod
     def _update(self, resource_pool: ocloud.ResourcePool):
         raise NotImplementedError
@@ -147,6 +163,10 @@ class ResourceRepository(abc.ABC):
         return resource
 
     def list(self, resourcepool_id, **kwargs) -> List[ocloud.Resource]:
+        return self._list(resourcepool_id, **kwargs)[1]
+
+    def list_with_count(self, resourcepool_id, **kwargs) -> \
+            Tuple[int, List[ocloud.Resource]]:
         return self._list(resourcepool_id, **kwargs)
 
     def update(self, resource: ocloud.Resource):
@@ -162,7 +182,8 @@ class ResourceRepository(abc.ABC):
         raise NotImplementedError
 
     @abc.abstractmethod
-    def _list(self, resourcepool_id, **kwargs) -> ocloud.Resource:
+    def _list(self, resourcepool_id, **kwargs) -> \
+            Tuple[int, List[ocloud.Resource]]:
         raise NotImplementedError
 
     @abc.abstractmethod
@@ -184,8 +205,12 @@ class DeploymentManagerRepository(abc.ABC):
             self.seen.add(deployment_manager)
         return deployment_manager
 
-    def list(self) -> List[ocloud.DeploymentManager]:
-        return self._list()
+    def list(self, **kwargs) -> List[ocloud.DeploymentManager]:
+        return self._list(**kwargs)[1]
+
+    def list_with_count(self, **kwargs) -> \
+            Tuple[int, List[ocloud.DeploymentManager]]:
+        return self._list(**kwargs)
 
     def update(self, deployment_manager: ocloud.DeploymentManager):
         self._update(deployment_manager)
@@ -198,6 +223,10 @@ class DeploymentManagerRepository(abc.ABC):
     def _get(self, deployment_manager_id) -> ocloud.DeploymentManager:
         raise NotImplementedError
 
+    @abc.abstractmethod
+    def _list(self, **kwargs) -> Tuple[int, List[ocloud.DeploymentManager]]:
+        raise NotImplementedError
+
     @abc.abstractmethod
     def _update(self, deployment_manager: ocloud.DeploymentManager):
         raise NotImplementedError