X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_mon%2Fcore%2Fdatabase.py;fp=osm_mon%2Fcore%2Fdatabase.py;h=3b601b25cf00f59bc7a2e34b5134dc0a890d6611;hb=0c5ec8cea177aae846451601bd62e0c99676c30a;hp=2a17f9b564e0a6f212549b518019f9a8e7f55056;hpb=c0da257ff744282c178594bab0b50ee3a0f3416e;p=osm%2FMON.git diff --git a/osm_mon/core/database.py b/osm_mon/core/database.py index 2a17f9b..3b601b2 100644 --- a/osm_mon/core/database.py +++ b/osm_mon/core/database.py @@ -75,34 +75,44 @@ class DatabaseManager: db.initialize(connect(config.get('sql', 'database_uri'))) def create_tables(self) -> None: + db.connect() with db.atomic(): router = Router(db, os.path.dirname(migrations.__file__)) router.run() + db.close() def get_credentials(self, vim_uuid: str = None) -> VimCredentials: + db.connect() with db.atomic(): - return VimCredentials.get_or_none(VimCredentials.uuid == vim_uuid) + vim_credentials = VimCredentials.get_or_none(VimCredentials.uuid == vim_uuid) + db.close() + return vim_credentials def save_credentials(self, vim_credentials) -> VimCredentials: """Saves vim credentials. If a record with same uuid exists, overwrite it.""" + db.connect() with db.atomic(): exists = VimCredentials.get_or_none(VimCredentials.uuid == vim_credentials.uuid) if exists: vim_credentials.id = exists.id vim_credentials.save() - return vim_credentials + db.close() + return vim_credentials def get_alarm(self, alarm_id) -> Alarm: + db.connect() with db.atomic(): alarm = (Alarm.select() .where(Alarm.alarm_id == alarm_id) .get()) - return alarm + db.close() + return alarm def save_alarm(self, name, threshold, operation, severity, statistic, metric_name, vdur_name, vnf_member_index, nsr_id) -> Alarm: """Saves alarm.""" # TODO: Add uuid optional param and check if exists to handle updates (see self.save_credentials) + db.connect() with db.atomic(): alarm = Alarm() alarm.uuid = str(uuid.uuid4()) @@ -116,14 +126,17 @@ class DatabaseManager: alarm.vnf_member_index = vnf_member_index alarm.nsr_id = nsr_id alarm.save() - return alarm + db.close() + return alarm def delete_alarm(self, alarm_uuid) -> None: + db.connect() with db.atomic(): alarm = (Alarm.select() .where(Alarm.uuid == alarm_uuid) .get()) alarm.delete_instance() + db.close() def get_vim_type(self, vim_account_id) -> str: """Get the vim type that is required by the message."""