X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2ims%2Fadapter%2Falarm_repository.py;h=e16c6ca07308fd974ab8e3065d9a3411a6648818;hb=df795c526aff71a64c5709f5ec3d8adc0ce5b3f0;hp=ef20e6a51aa6a639cc6212b9f1cadbafa25cf486;hpb=d2f6cc674bf3623caf114a8d7709e70d55ec9340;p=pti%2Fo2.git diff --git a/o2ims/adapter/alarm_repository.py b/o2ims/adapter/alarm_repository.py index ef20e6a..e16c6ca 100644 --- a/o2ims/adapter/alarm_repository.py +++ b/o2ims/adapter/alarm_repository.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import List +from typing import List, Tuple from o2ims.domain import alarm_obj from o2ims.domain.alarm_repo import AlarmDefinitionRepository, \ @@ -34,8 +34,17 @@ class AlarmEventRecordSqlAlchemyRepository(AlarmEventRecordRepository): return self.session.query(alarm_obj.AlarmEventRecord).filter_by( alarmEventRecordId=alarm_event_record_id).first() - def _list(self) -> List[alarm_obj.AlarmEventRecord]: - return self.session.query(alarm_obj.AlarmEventRecord) + def _list(self, *args, **kwargs) -> Tuple[ + int, List[alarm_obj.AlarmEventRecord]]: + size = kwargs.pop('limit') if 'limit' in kwargs else None + offset = kwargs.pop('start') if 'start' in kwargs else 0 + + result = self.session.query(alarm_obj.AlarmEventRecord).filter( + *args).order_by('alarmEventRecordId') + count = result.count() + if size is not None and size != -1: + return (count, result.limit(size).offset(offset)) + return (count, result) def _update(self, alarm_event_record: alarm_obj.AlarmEventRecord): self.session.add(alarm_event_record) @@ -80,8 +89,17 @@ class AlarmSubscriptionSqlAlchemyRepository(AlarmSubscriptionRepository): return self.session.query(alarm_obj.AlarmSubscription).filter_by( alarmSubscriptionId=subscription_id).first() - def _list(self) -> List[alarm_obj.AlarmSubscription]: - return self.session.query(alarm_obj.AlarmSubscription) + def _list(self, *args, **kwargs) -> Tuple[ + int, List[alarm_obj.AlarmSubscription]]: + size = kwargs.pop('limit') if 'limit' in kwargs else None + offset = kwargs.pop('start') if 'start' in kwargs else 0 + + result = self.session.query(alarm_obj.AlarmSubscription).filter( + *args).order_by('alarmSubscriptionId') + count = result.count() + if size is not None and size != -1: + return (count, result.limit(size).offset(offset)) + return (count, result) def _update(self, subscription: alarm_obj.AlarmSubscription): self.session.add(subscription)