Collect null project_ids as empty strings
[osm/MON.git] / osm_mon / collector / vnf_collectors / openstack.py
index 122fdd6..60b387c 100644 (file)
@@ -28,6 +28,7 @@ from ceilometerclient import client as ceilometer_client
 from ceilometerclient.exc import HTTPException
 from gnocchiclient.v1 import client as gnocchi_client
 from keystoneclient.v3 import client as keystone_client
+from keystoneauth1.exceptions.catalog import EndpointNotFound
 from neutronclient.v2_0 import client as neutron_client
 
 from osm_mon.collector.metric import Metric
@@ -84,7 +85,10 @@ class OpenstackCollector(BaseVimCollector):
         # Populate extra tags for metrics
         tags = {}
         tags['ns_name'] = self.common_db.get_nsr(nsr_id)['name']
-        tags['project_id'] = vnfr['_admin']['projects_read'][0]
+        if vnfr['_admin']['projects_read']:
+            tags['project_id'] = vnfr['_admin']['projects_read'][0]
+        else:
+            tags['project_id'] = ''
 
         metrics = []
         for vdur in vnfr['vdur']:
@@ -125,7 +129,7 @@ class OpenstackCollector(BaseVimCollector):
             ceilometer = CeilometerBackend(vim_account)
             ceilometer.client.capabilities.get()
             return ceilometer
-        except HTTPException:
+        except (HTTPException, EndpointNotFound):
             gnocchi = GnocchiBackend(vim_account)
             gnocchi.client.metric.list(limit=1)
             return gnocchi