Modifies MON to use mongodb directly for vim info and do vim pass decryption on demand
[osm/MON.git] / osm_mon / core / common_db.py
index 33eff02..3b20bbe 100644 (file)
@@ -74,15 +74,37 @@ class CommonDbClient:
         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_vim_account(self, vim_account_id: str) -> dict:
+        vim_account = self.common_db.get_one('vim_accounts', {"_id": vim_account_id})
+        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)
+        return vim_account
+
+    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})