X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2ims%2Fadapter%2Falarm_repository.py;h=ef7ae26e02cbecc9f400c18acf61908fe0236a53;hb=f7ef52a5b4ead0472b1b5828471b28c88d2a0aea;hp=ef20e6a51aa6a639cc6212b9f1cadbafa25cf486;hpb=5601b5899b0fd15748ae0474de9f5f6dda72864c;p=pti%2Fo2.git diff --git a/o2ims/adapter/alarm_repository.py b/o2ims/adapter/alarm_repository.py index ef20e6a..ef7ae26 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,16 @@ 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, **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_by( + **kwargs).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 +88,16 @@ 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, **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_by( + **kwargs).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)