X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FMON.git;a=blobdiff_plain;f=osm_mon%2Fcollector%2Fvnf_collectors%2Fopenstack.py;h=ef366f9770b3661c4802f9c156d9132bac50dce9;hp=5119f339469276a5188c07b5d2db342cc38609d4;hb=94948de24a6ff7d03cce2168be5a83c0ed97196d;hpb=d655ca05116081f8d7dfdebd0df81ff5d9bce58d diff --git a/osm_mon/collector/vnf_collectors/openstack.py b/osm_mon/collector/vnf_collectors/openstack.py index 5119f33..ef366f9 100644 --- a/osm_mon/collector/vnf_collectors/openstack.py +++ b/osm_mon/collector/vnf_collectors/openstack.py @@ -84,11 +84,11 @@ class MetricType(Enum): class OpenstackCollector(BaseVimCollector): - def __init__(self, config: Config, vim_account_id: str): + def __init__(self, config: Config, vim_account_id: str, vim_session: object): super().__init__(config, vim_account_id) self.common_db = CommonDbClient(config) vim_account = self.common_db.get_vim_account(vim_account_id) - self.backend = self._get_backend(vim_account) + self.backend = self._get_backend(vim_account, vim_session) def _build_keystone_client(self, vim_account: dict) -> keystone_client.Client: sess = OpenstackUtils.get_session(vim_account) @@ -182,14 +182,14 @@ class OpenstackCollector(BaseVimCollector): log.info("Error in metric collection: %s" % e) return metrics - def _get_backend(self, vim_account: dict): + def _get_backend(self, vim_account: dict, vim_session: object): try: - gnocchi = GnocchiBackend(vim_account) + gnocchi = GnocchiBackend(vim_account, vim_session) gnocchi.client.metric.list(limit=1) log.info("Using gnocchi backend to collect metric") return gnocchi except (HTTPException, EndpointNotFound): - ceilometer = CeilometerBackend(vim_account) + ceilometer = CeilometerBackend(vim_account, vim_session) ceilometer.client.capabilities.get() log.info("Using ceilometer backend to collect metric") return ceilometer @@ -209,17 +209,15 @@ class OpenstackBackend: class GnocchiBackend(OpenstackBackend): - def __init__(self, vim_account: dict): - self.client = self._build_gnocchi_client(vim_account) - self.neutron = self._build_neutron_client(vim_account) + def __init__(self, vim_account: dict, vim_session: object): + self.client = self._build_gnocchi_client(vim_account, vim_session) + self.neutron = self._build_neutron_client(vim_account, vim_session) - def _build_gnocchi_client(self, vim_account: dict) -> gnocchi_client.Client: - sess = OpenstackUtils.get_session(vim_account) - return gnocchi_client.Client(session=sess) + def _build_gnocchi_client(self, vim_account: dict, vim_session: object) -> gnocchi_client.Client: + return gnocchi_client.Client(session=vim_session) - def _build_neutron_client(self, vim_account: dict) -> neutron_client.Client: - sess = OpenstackUtils.get_session(vim_account) - return neutron_client.Client(session=sess) + def _build_neutron_client(self, vim_account: dict, vim_session: object) -> neutron_client.Client: + return neutron_client.Client(session=vim_session) def collect_metric( self, metric_type: MetricType, metric_name: str, resource_id: str @@ -322,12 +320,11 @@ class GnocchiBackend(OpenstackBackend): class CeilometerBackend(OpenstackBackend): - def __init__(self, vim_account: dict): - self.client = self._build_ceilometer_client(vim_account) + def __init__(self, vim_account: dict, vim_session: object): + self.client = self._build_ceilometer_client(vim_account, vim_session) - def _build_ceilometer_client(self, vim_account: dict) -> ceilometer_client.Client: - sess = OpenstackUtils.get_session(vim_account) - return ceilometer_client.Client("2", session=sess) + def _build_ceilometer_client(self, vim_account: dict, vim_session: object) -> ceilometer_client.Client: + return ceilometer_client.Client("2", session=vim_session) def collect_metric( self, metric_type: MetricType, metric_name: str, resource_id: str