X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_mon%2Fcore%2Fdatabase.py;h=61bd18060122f759a22c625064e7a1b98b1db84e;hb=628df021896fa8775f9743af62a4267b617cc35c;hp=2f51b1e063fb4911ef803ef3892ec67fef350399;hpb=a97bdb3eafa4f3d07d61d32635f7f36f5cc36c58;p=osm%2FMON.git diff --git a/osm_mon/core/database.py b/osm_mon/core/database.py index 2f51b1e..61bd180 100644 --- a/osm_mon/core/database.py +++ b/osm_mon/core/database.py @@ -26,7 +26,7 @@ import logging import os from typing import Iterable -from peewee import CharField, TextField, FloatField, Model, AutoField, Proxy +from peewee import CharField, FloatField, Model, AutoField, Proxy, ForeignKeyField from peewee_migrate import Router from playhouse.db_url import connect @@ -45,17 +45,6 @@ class BaseModel(Model): database = db -class VimCredentials(BaseModel): - uuid = CharField(unique=True) - name = CharField() - type = CharField() - url = CharField() - user = CharField() - password = CharField() - tenant_name = CharField() - config = TextField() - - class Alarm(BaseModel): uuid = CharField(unique=True) name = CharField() @@ -63,10 +52,13 @@ class Alarm(BaseModel): threshold = FloatField() operation = CharField() statistic = CharField() - monitoring_param = CharField() - vdur_name = CharField() - vnf_member_index = CharField() - nsr_id = CharField() + metric = CharField() + + +class AlarmTag(BaseModel): + name = CharField() + value = CharField() + alarm = ForeignKeyField(Alarm, related_name='tags', on_delete='CASCADE') class DatabaseManager: @@ -81,18 +73,10 @@ class DatabaseManager: db.close() -class VimCredentialsRepository: +class AlarmTagRepository: @staticmethod - def upsert(**query) -> VimCredentials: - vim_credentials = VimCredentials.get_or_none(**query) - if vim_credentials: - query.update({'id': vim_credentials.id}) - vim_id = VimCredentials.insert(**query).on_conflict_replace().execute() - return VimCredentials.get(id=vim_id) - - @staticmethod - def get(*expressions) -> VimCredentials: - return VimCredentials.select().where(*expressions).get() + def create(**query) -> Alarm: + return AlarmTag.create(**query) class AlarmRepository: