X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2ims%2Fadapter%2Falarm_repository.py;h=5986ad56af89445fce5ca9915feceeb7fa3f1c82;hb=HEAD;hp=50f9bb29f09315cedbd064cc3ef1313a21503308;hpb=7e4dd62aa6df26c97dc2596bacacedebb16f7e13;p=pti%2Fo2.git diff --git a/o2ims/adapter/alarm_repository.py b/o2ims/adapter/alarm_repository.py index 50f9bb2..5986ad5 100644 --- a/o2ims/adapter/alarm_repository.py +++ b/o2ims/adapter/alarm_repository.py @@ -1,4 +1,4 @@ -# Copyright (C) 2022 Wind River Systems, Inc. +# Copyright (C) 2022-2024 Wind River Systems, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ from typing import List, Tuple from o2ims.domain import alarm_obj from o2ims.domain.alarm_repo import AlarmDefinitionRepository, \ AlarmEventRecordRepository, AlarmSubscriptionRepository, \ - AlarmProbableCauseRepository + AlarmProbableCauseRepository, AlarmDictionaryRepository from o2common.helper import o2logging logger = o2logging.get_logger(__name__) @@ -47,7 +47,7 @@ class AlarmEventRecordSqlAlchemyRepository(AlarmEventRecordRepository): return (count, result) def _update(self, alarm_event_record: alarm_obj.AlarmEventRecord): - self.session.add(alarm_event_record) + self.session.merge(alarm_event_record) def _delete(self, alarm_event_record_id): self.session.query(alarm_obj.AlarmEventRecord).filter_by( @@ -77,6 +77,26 @@ class AlarmDefinitionSqlAlchemyRepository(AlarmDefinitionRepository): alarmDefinitionId=alarm_definition_id).delete() +class AlarmDictionarySqlAlchemyRepository(AlarmDictionaryRepository): + def __init__(self, session): + super().__init__() + self.session = session + + def _add(self, alarm_dict: alarm_obj.AlarmDictionary): + self.session.add(alarm_dict) + + def _get(self, dictionary_id) -> alarm_obj.AlarmDictionary: + return self.session.query(alarm_obj.AlarmDictionary).filter_by( + id=dictionary_id).first() + + def _list(self) -> List[alarm_obj.AlarmDictionary]: + return self.session.query(alarm_obj.AlarmDictionary) + + def _delete(self, dictionary_id): + self.session.query(alarm_obj.AlarmDictionary).filter_by( + id=dictionary_id).delete() + + class AlarmSubscriptionSqlAlchemyRepository(AlarmSubscriptionRepository): def __init__(self, session): super().__init__() @@ -95,7 +115,7 @@ class AlarmSubscriptionSqlAlchemyRepository(AlarmSubscriptionRepository): offset = kwargs.pop('start') if 'start' in kwargs else 0 result = self.session.query(alarm_obj.AlarmSubscription).filter( - *args).order_by('alarmEventRecordId') + *args).order_by('alarmSubscriptionId') count = result.count() if size is not None and size != -1: return (count, result.limit(size).offset(offset))