- alarm_dict = alarm.AlarmDictionary(dictionary)
- alarm_dict.entityType = dictionary
- alarm_dict.alarmDictionaryVersion = \
- dictionaries[dictionary]['version']
- alarm_dict.alarmDefinition = \
- dictionaries[dictionary]['alarmDefinition']
- conf.alarm_dictionaries.add(alarm_dict)
+ version = dictionaries[dictionary]['version']
+ definitions = dictionaries[dictionary]['alarmDefinition']
+ dict_id = str(uuid_gen.uuid3(
+ uuid_gen.NAMESPACE_URL,
+ str(f"{dictionary}_alarmdictionary")))
+
+ with uow:
+ alarm_dict = uow.alarm_dictionaries.get(dict_id)
+ if alarm_dict:
+ alarm_dict.alarmDictionaryVersion = version
+ alarm_dict.alarmDictionarySchemaVersion = schema_ver
+ else:
+ alarm_dict = alarm.AlarmDictionary(dict_id)
+ alarm_dict.entityType = dictionary
+ alarm_dict.alarmDictionaryVersion = version
+ alarm_dict.alarmDictionarySchemaVersion = schema_ver
+
+ definition_list = list()
+ if definitions:
+ for definition in definitions:
+ def_uuid = str(uuid_gen.uuid3(
+ uuid_gen.NAMESPACE_URL, str(definition)))
+ def_obj = uow.alarm_definitions.get(def_uuid)
+ definition_list.append(def_obj)
+ alarm_dict.alarmDefinition = definition_list
+ uow.alarm_dictionaries.add(alarm_dict)
+ uow.commit()
+ # conf.alarm_dictionaries.add(alarm_dict)