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__)
return self.session.query(alarm_obj.AlarmEventRecord).filter_by(
alarmEventRecordId=alarm_event_record_id).first()
- def _list(self, **kwargs) -> Tuple[int, List[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_by(
- **kwargs).order_by('alarmEventRecordId')
+ 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)
+ self.session.merge(alarm_event_record)
def _delete(self, alarm_event_record_id):
self.session.query(alarm_obj.AlarmEventRecord).filter_by(
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__()
return self.session.query(alarm_obj.AlarmSubscription).filter_by(
alarmSubscriptionId=subscription_id).first()
- def _list(self, **kwargs) -> Tuple[int, List[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_by(
- **kwargs).order_by('alarmSubscriptionId')
+ 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))