X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_mon%2Fcore%2Fcommon_db.py;h=e43c6cdc8b79b715e087bc519a378d096187dc41;hb=85a9185db3248f1e3f20c8edad95ab77b8ee989c;hp=3b20bbe04eea78dc1cce2974a37a783546d00611;hpb=416a753c60f1ba9545f4aa36fb45e1730046e4b2;p=osm%2FMON.git diff --git a/osm_mon/core/common_db.py b/osm_mon/core/common_db.py index 3b20bbe..e43c6cd 100644 --- a/osm_mon/core/common_db.py +++ b/osm_mon/core/common_db.py @@ -21,9 +21,12 @@ # For those usages not covered by the Apache License, Version 2.0 please # contact: bdiaz@whitestack.com or glavado@whitestack.com ## +from typing import List + from osm_common import dbmongo, dbmemory from osm_mon.core.config import Config +from osm_mon.core.models import Alarm class CommonDbClient: @@ -55,9 +58,25 @@ class CommonDbClient: return vnfrs def get_vnfd(self, vnfd_id: str): - vnfr = self.common_db.get_one("vnfds", + vnfd = self.common_db.get_one("vnfds", {"_id": vnfd_id}) - return vnfr + return vnfd + + def get_vnfd_by_id(self, vnfd_id: str): + vnfd = self.common_db.get_one("vnfds", + {"id": vnfd_id}) + return vnfd + + def get_vnfd_by_name(self, vnfd_name: str): + # TODO: optimize way of getting single VNFD in shared enviroments (RBAC) + if self.common_db.get_list("vnfds", {"name": vnfd_name}): + vnfd = self.common_db.get_list("vnfds", {"name": vnfd_name})[0] + return vnfd + else: + return None + + def get_nsrs(self): + return self.common_db.get_list('nsrs') def get_nsr(self, nsr_id: str): nsr = self.common_db.get_one("nsrs", @@ -95,12 +114,19 @@ class CommonDbClient: vim_account['vim_password'] = self.decrypt_vim_password(vim_account['vim_password'], vim_account['schema_version'], vim_account_id) - vim_config_encrypted = ("admin_password", "nsx_password", "vcenter_password") - for key in vim_account['config']: - if key in vim_config_encrypted: - vim_account['config'][key] = self.decrypt_vim_password(vim_account['config'][key], - vim_account['schema_version'], - vim_account_id) + vim_config_encrypted_dict = { + "1.1": ("admin_password", "nsx_password", "vcenter_password"), + "default": ("admin_password", "nsx_password", "vcenter_password", "vrops_password") + } + vim_config_encrypted = vim_config_encrypted_dict['default'] + if vim_account['schema_version'] in vim_config_encrypted_dict.keys(): + vim_config_encrypted = vim_config_encrypted_dict[vim_account['schema_version']] + if 'config' in vim_account: + for key in vim_account['config']: + if key in vim_config_encrypted: + vim_account['config'][key] = self.decrypt_vim_password(vim_account['config'][key], + vim_account['schema_version'], + vim_account_id) return vim_account def get_sdncs(self): @@ -108,3 +134,31 @@ class CommonDbClient: def get_sdnc(self, sdnc_id: str): return self.common_db.get_one('sdns', {'_id': sdnc_id}) + + def get_projects(self): + return self.common_db.get_list('projects') + + def get_project(self, project_id: str): + return self.common_db.get_one('projects', {'_id': project_id}) + + def create_alarm(self, alarm: Alarm): + return self.common_db.create('alarms', alarm.to_dict()) + + def delete_alarm(self, alarm_uuid: str): + return self.common_db.del_one('alarms', {'uuid': alarm_uuid}) + + def get_alarms(self) -> List[Alarm]: + alarms = [] + alarm_dicts = self.common_db.get_list('alarms') + for alarm_dict in alarm_dicts: + alarms.append(Alarm.from_dict(alarm_dict)) + return alarms + + def get_user(self, username: str): + return self.common_db.get_one('users', {'username': username}) + + def get_user_by_id(self, userid: str): + return self.common_db.get_one('users', {'_id': userid}) + + def get_role_by_name(self, name: str): + return self.common_db.get_one('roles', {'name': name})