Fix vROps monitoring problems related to SOL006 migration
[osm/MON.git] / osm_mon / collector / vnf_collectors / vio.py
index 84cebe0..e84f5e7 100644 (file)
 # contact:  osslegalrouting@vmware.com
 ##
 
-import json
 import logging
 
-from osm_mon.collector.utils.collector import CollectorUtils
 from osm_mon.collector.vnf_collectors.base_vim import BaseVimCollector
+from osm_mon.collector.vnf_collectors.vrops.vrops_helper import vROPS_Helper
 from osm_mon.core.common_db import CommonDbClient
 from osm_mon.core.config import Config
-from osm_mon.collector.vnf_collectors.vrops.vrops_helper import vROPS_Helper
 
 log = logging.getLogger(__name__)
 
@@ -43,13 +41,22 @@ class VIOCollector(BaseVimCollector):
                                   vrops_password=cfg['vrops_password'])
 
     def get_vim_account(self, vim_account_id: str):
-        vim_account_info = CollectorUtils.get_credentials(vim_account_id)
-        return json.loads(vim_account_info.config)
+        vim_account_info = self.common_db.get_vim_account(vim_account_id)
+        return vim_account_info['config']
 
     def collect(self, vnfr: dict):
         vnfd = self.common_db.get_vnfd(vnfr['vnfd-id'])
         vdu_mappings = {}
 
+        # Populate extra tags for metrics
+        nsr_id = vnfr['nsr-id-ref']
+        tags = {}
+        tags['ns_name'] = self.common_db.get_nsr(nsr_id)['name']
+        if vnfr['_admin']['projects_read']:
+            tags['project_id'] = vnfr['_admin']['projects_read'][0]
+        else:
+            tags['project_id'] = ''
+
         # Fetch the list of all known resources from vROPS.
         resource_list = self.vrops.get_vm_resource_list_from_vrops()
 
@@ -61,7 +68,7 @@ class VIOCollector(BaseVimCollector):
             vdu = next(
                 filter(lambda vdu: vdu['id'] == vdur['vdu-id-ref'], vnfd['vdu'])
             )
-            if 'monitoring-param' not in vdu:
+            if 'monitoring-parameter' not in vdu:
                 continue
 
             vim_id = vdur['vim-id']
@@ -77,7 +84,9 @@ class VIOCollector(BaseVimCollector):
 
         if len(vdu_mappings) != 0:
             return self.vrops.get_metrics(vdu_mappings=vdu_mappings,
-                                          monitoring_params=vdu['monitoring-param'],
-                                          vnfr=vnfr)
+                                          monitoring_params=vdu['monitoring-parameter'],
+                                          vnfr=vnfr,
+                                          tags=tags
+                                          )
         else:
             return []