X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_mon%2Fcore%2Fdatabase.py;h=2a17f9b564e0a6f212549b518019f9a8e7f55056;hb=c0da257ff744282c178594bab0b50ee3a0f3416e;hp=4cbd75f8fe60e6c0e7434158befb72f51b539016;hpb=b525e6c8619d494d4e254def394cf5b62de4df4a;p=osm%2FMON.git diff --git a/osm_mon/core/database.py b/osm_mon/core/database.py index 4cbd75f..2a17f9b 100644 --- a/osm_mon/core/database.py +++ b/osm_mon/core/database.py @@ -23,12 +23,16 @@ ## import logging +import os import uuid +import json from peewee import CharField, TextField, FloatField, Model, AutoField, Proxy +from peewee_migrate import Router from playhouse.db_url import connect -from osm_mon.core.settings import Config +from osm_mon import migrations +from osm_mon.core.config import Config log = logging.getLogger(__name__) @@ -50,7 +54,7 @@ class VimCredentials(BaseModel): user = CharField() password = CharField() tenant_name = CharField() - config = TextField(default='{}') + config = TextField() class Alarm(BaseModel): @@ -67,14 +71,13 @@ class Alarm(BaseModel): class DatabaseManager: - def __init__(self): - cfg = Config.instance() - cfg.read_environ() - db.initialize(connect(cfg.DATABASE)) + def __init__(self, config: Config): + db.initialize(connect(config.get('sql', 'database_uri'))) def create_tables(self) -> None: with db.atomic(): - db.create_tables([VimCredentials, Alarm]) + router = Router(db, os.path.dirname(migrations.__file__)) + router.run() def get_credentials(self, vim_uuid: str = None) -> VimCredentials: with db.atomic(): @@ -124,5 +127,11 @@ class DatabaseManager: def get_vim_type(self, vim_account_id) -> str: """Get the vim type that is required by the message.""" + vim_type = None credentials = self.get_credentials(vim_account_id) - return str(credentials.type) + config = json.loads(credentials.config) + if 'vim_type' in config: + vim_type = config['vim_type'] + return str(vim_type.lower()) + else: + return str(credentials.type)