X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_policy_module%2Fcore%2Fdatabase.py;h=a39f982c85ba9afac09a82a4a4af31d070659181;hb=f3d077b407c594cdeabe267f73d61c355cb70066;hp=8ad19f2f4ecbe928fad165a921e1cceaa368be4a;hpb=4c5541f020bbc56e9ae1a326b0d33e673dcd5f0b;p=osm%2FPOL.git diff --git a/osm_policy_module/core/database.py b/osm_policy_module/core/database.py index 8ad19f2..a39f982 100644 --- a/osm_policy_module/core/database.py +++ b/osm_policy_module/core/database.py @@ -25,14 +25,14 @@ import datetime import logging from peewee import CharField, IntegerField, ForeignKeyField, Model, TextField, AutoField, DateTimeField -from playhouse.sqlite_ext import SqliteExtDatabase +from playhouse.db_url import connect from osm_policy_module.core.config import Config log = logging.getLogger(__name__) cfg = Config.instance() -db = SqliteExtDatabase('policy_module.db') +db = connect(cfg.OSMPOL_SQL_DATABASE_URI) class BaseModel(Model): @@ -53,20 +53,20 @@ class ScalingPolicy(BaseModel): name = CharField() cooldown_time = IntegerField() last_scale = DateTimeField(default=datetime.datetime.now) - scaling_group = ForeignKeyField(ScalingGroup, related_name='scaling_policies') + scaling_group = ForeignKeyField(ScalingGroup, related_name='scaling_policies', on_delete='CASCADE') class ScalingCriteria(BaseModel): name = CharField() - scaling_policy = ForeignKeyField(ScalingPolicy, related_name='scaling_criterias') + scaling_policy = ForeignKeyField(ScalingPolicy, related_name='scaling_criterias', on_delete='CASCADE') class ScalingAlarm(BaseModel): - alarm_id = CharField() + alarm_uuid = CharField(unique=True) action = CharField() vnf_member_index = IntegerField() vdu_name = CharField() - scaling_criteria = ForeignKeyField(ScalingCriteria, related_name='scaling_alarms') + scaling_criteria = ForeignKeyField(ScalingCriteria, related_name='scaling_alarms', on_delete='CASCADE') class DatabaseManager: @@ -75,5 +75,8 @@ class DatabaseManager: db.connect() db.create_tables([ScalingGroup, ScalingPolicy, ScalingCriteria, ScalingAlarm]) db.close() - except Exception as e: + except Exception: log.exception("Error creating tables: ") + + def get_alarm(self, alarm_uuid: str): + return ScalingAlarm.select().where(ScalingAlarm.alarm_uuid == alarm_uuid).get()