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
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()
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:
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: