X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FPOL.git;a=blobdiff_plain;f=osm_policy_module%2Fcore%2Fdatabase.py;h=e596d74fb48515a550f4b4492e26dbd05f7b6141;hp=b7a0b4f765a93451d3c5fc5ec5a29afdec1ec9ef;hb=7ef2b88a9c0c6ead16861411584d017e1fe216d7;hpb=cb5642a2af495af4319beb1dba2d417b78f3200a diff --git a/osm_policy_module/core/database.py b/osm_policy_module/core/database.py index b7a0b4f..e596d74 100644 --- a/osm_policy_module/core/database.py +++ b/osm_policy_module/core/database.py @@ -110,6 +110,22 @@ class AlarmAction(BaseModel): alarm = ForeignKeyField(VnfAlarm, related_name="actions", on_delete="CASCADE") +class HealingAction(BaseModel): + alarm_id = CharField() + recovery_action = CharField() + alarm_uuid = CharField(unique=True) + nsr_id = CharField() + vnfinstance_id = CharField() + vnf_member_index = CharField() + vdur_name = CharField() + vdu_id = CharField() + cooldown_time = IntegerField() + count_index = IntegerField() + last_heal = DateTimeField(default=datetime.datetime.now) + last_status = CharField(default='insufficient-data') + day1 = BooleanField(default=False) + + class DatabaseManager: def __init__(self, config: Config): db.initialize(connect(config.get("sql", "database_uri"))) @@ -224,3 +240,18 @@ class AlarmActionRepository: @staticmethod def create(**query) -> AlarmAction: return AlarmAction.create(**query) + + +class HealingActionRepository: + @staticmethod + def list(*expressions) -> Iterable[HealingAction]: + log.info("### Printing healing action db alarm {}".format(HealingAction.select().where(*expressions))) + return HealingAction.select().where(*expressions) + + @staticmethod + def get(*expressions) -> HealingAction: + return HealingAction.select().where(*expressions).get() + + @staticmethod + def create(**query) -> HealingAction: + return HealingAction.create(**query)