# For those usages not covered by the Apache License, Version 2.0 please
# contact: bdiaz@whitestack.com or glavado@whitestack.com
##
-from osm_common import dbmongo
+from osm_common import dbmongo, dbmemory
-from osm_mon.core.settings import Config
+from osm_mon.core.config import Config
class CommonDbClient:
- def __init__(self):
- cfg = Config.instance()
- self.common_db = dbmongo.DbMongo()
- self.common_db.db_connect({'uri': cfg.MONGO_URI,
- 'name': 'osm',
- 'commonkey': cfg.OSMMON_DATABASE_COMMONKEY})
+ def __init__(self, config: Config):
+ if config.get('database', 'driver') == "mongo":
+ self.common_db = dbmongo.DbMongo()
+ elif config.get('database', 'driver') == "memory":
+ self.common_db = dbmemory.DbMemory()
+ else:
+ raise Exception("Unknown database driver {}".format(config.get('section', 'driver')))
+ self.common_db.db_connect(config.get("database"))
def get_vnfr(self, nsr_id: str, member_index: int):
vnfr = self.common_db.get_one("vnfrs",
{"nsr-id-ref": nsr_id, "member-vnf-index-ref": str(member_index)})
return vnfr
- def get_vnfrs(self, nsr_id: str = None):
+ def get_vnfrs(self, nsr_id: str = None, vim_account_id: str = None):
+ if nsr_id and vim_account_id:
+ raise NotImplementedError("Only one filter is currently supported")
if nsr_id:
- return [self.get_vnfr(nsr_id, member['member-vnf-index']) for member in
- self.get_nsr(nsr_id)['nsd']['constituent-vnfd']]
+ vnfrs = [self.get_vnfr(nsr_id, member['member-vnf-index']) for member in
+ self.get_nsr(nsr_id)['nsd']['constituent-vnfd']]
+ elif vim_account_id:
+ vnfrs = self.common_db.get_list("vnfrs",
+ {"vim-account-id": vim_account_id})
else:
- return self.common_db.get_list('vnfrs')
+ vnfrs = self.common_db.get_list('vnfrs')
+ return vnfrs
def get_vnfd(self, vnfd_id: str):
vnfr = self.common_db.get_one("vnfds",
for vdur in vnfr['vdur']:
if vdur['name'] == vdur_name:
return vdur
- raise ValueError('vdur not found for nsr-id %s, member_index %s and vdur_name %s', nsr_id, member_index,
- vdur_name)
+ raise ValueError('vdur not found for nsr-id {}, member_index {} and vdur_name {}'.format(nsr_id, member_index,
+ vdur_name))
def decrypt_vim_password(self, vim_password: str, schema_version: str, vim_id: str):
return self.common_db.decrypt(vim_password, schema_version, vim_id)
+ def decrypt_sdnc_password(self, sdnc_password: str, schema_version: str, sdnc_id: str):
+ return self.common_db.decrypt(sdnc_password, schema_version, sdnc_id)
+
def get_vim_account_id(self, nsr_id: str, vnf_member_index: int) -> str:
vnfr = self.get_vnfr(nsr_id, vnf_member_index)
return vnfr['vim-account-id']
+
+ def get_vim_accounts(self):
+ return self.common_db.get_list('vim_accounts')
+
+ def get_sdncs(self):
+ return self.common_db.get_list('sdns')
+
+ def get_sdnc(self, sdnc_id: str):
+ return self.common_db.get_one('sdns', {'_id': sdnc_id})