- def _list(self, resourcepool_id, **kwargs) -> List[ocloud.Resource]:
- return self.session.query(ocloud.Resource).filter_by(
- resourcePoolId=resourcepool_id, **kwargs)
+ def _list(self, resourcepool_id, *args, **kwargs) -> \
+ Tuple[int, List[ocloud.Resource]]:
+ if 'sort' in kwargs:
+ kwargs.pop('sort')
+ size = kwargs.pop('limit') if 'limit' in kwargs else None
+ offset = kwargs.pop('start') if 'start' in kwargs else 0
+
+ result = self.session.query(ocloud.Resource).filter(
+ *args).order_by('resourceId')
+ count = result.count()
+ if size is not None and size != -1:
+ return (count, result.limit(size).offset(offset))
+ return (count, result)