X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_mon%2Fcollector%2Finfra_collectors%2Fbase_osinfra.py;h=b603d0338722a7141900b8078d69728f7afe15a3;hb=8283936d7cecd8941116409edbfaceeba6570acb;hp=afbf2455b73aee5b3cfa8a694eaad13655a48bbe;hpb=5959c93436ec38c1fb513adfbccaf0c9ede542c1;p=osm%2FMON.git diff --git a/osm_mon/collector/infra_collectors/base_osinfra.py b/osm_mon/collector/infra_collectors/base_osinfra.py index afbf245..b603d03 100644 --- a/osm_mon/collector/infra_collectors/base_osinfra.py +++ b/osm_mon/collector/infra_collectors/base_osinfra.py @@ -22,15 +22,13 @@ import logging from typing import List -from keystoneauth1 import session -from keystoneauth1.identity import v3 from keystoneclient.v3 import client as keystone_client from novaclient import client as nova_client from novaclient import v2 as nova_client_v2 from osm_mon.collector.infra_collectors.base_vim import BaseVimInfraCollector from osm_mon.collector.metric import Metric -from osm_mon.collector.utils import CollectorUtils +from osm_mon.collector.utils.openstack import OpenstackUtils from osm_mon.core.common_db import CommonDbClient from osm_mon.core.config import Config @@ -55,6 +53,9 @@ class BaseOpenStackInfraCollector(BaseVimInfraCollector): nsr_id = vnfr['nsr-id-ref'] vnf_member_index = vnfr['member-vnf-index-ref'] for vdur in vnfr['vdur']: + if 'vim-id' not in vdur: + log.debug("Field vim-id is not present in vdur") + continue resource_uuid = vdur['vim-id'] tags = { 'vim_account_id': self.vim_account_id, @@ -67,8 +68,8 @@ class BaseOpenStackInfraCollector(BaseVimInfraCollector): vm = self.nova.servers.get(resource_uuid) vm_status = (1 if vm.status == 'ACTIVE' else 0) vm_status_metric = Metric(tags, 'vm_status', vm_status) - except Exception: - log.exception("VM status is not OK!") + except Exception as e: + log.warning("VM status is not OK: %s" % e) vm_status_metric = Metric(tags, 'vm_status', 0) metrics.append(vm_status_metric) @@ -78,25 +79,14 @@ class BaseOpenStackInfraCollector(BaseVimInfraCollector): try: self.nova.servers.list() return True - except Exception: - log.exception("VIM status is not OK!") + except Exception as e: + log.warning("VIM status is not OK: %s" % e) return False def _build_keystone_client(self, vim_account_id) -> keystone_client.Client: - sess = self._get_session(vim_account_id) + sess = OpenstackUtils.get_session(vim_account_id) return keystone_client.Client(session=sess) def _build_nova_client(self, vim_account_id) -> nova_client_v2.Client: - sess = self._get_session(vim_account_id) + sess = OpenstackUtils.get_session(vim_account_id) return nova_client.Client("2", session=sess) - - def _get_session(self, vim_account_id: str): - creds = CollectorUtils.get_credentials(vim_account_id) - verify_ssl = CollectorUtils.is_verify_ssl(creds) - auth = v3.Password(auth_url=creds.url, - username=creds.user, - password=creds.password, - project_name=creds.tenant_name, - project_domain_id='default', - user_domain_id='default') - return session.Session(auth=auth, verify=verify_ssl)