Enable black in tox.ini
[osm/MON.git] / osm_mon / collector / vnf_collectors / openstack.py
index a823b67..be2bdb7 100644 (file)
@@ -63,7 +63,7 @@ METRIC_MAPPINGS_FOR_ROCKY_AND_NEWER_RELEASES = {
     "disk_read_bytes": "disk.device.read.bytes",
     "disk_write_bytes": "disk.device.write.bytes",
     "packets_received": "network.incoming.packets",
-    "packets_sent": "network.outgoing.packets"
+    "packets_sent": "network.outgoing.packets",
 }
 
 METRIC_MULTIPLIERS = {"cpu": 0.0000001}
@@ -89,7 +89,7 @@ class MetricType(Enum):
     INSTANCE = "instance"
     INTERFACE_ALL = "interface_all"
     INTERFACE_ONE = "interface_one"
-    INSTANCEDISK = 'instancedisk'
+    INSTANCEDISK = "instancedisk"
 
 
 class OpenstackCollector(BaseVimCollector):
@@ -161,16 +161,25 @@ class OpenstackCollector(BaseVimCollector):
                             metric_type, openstack_metric_name, resource_id
                         )
 
-                        if value is None and metric_name in METRIC_MAPPINGS_FOR_ROCKY_AND_NEWER_RELEASES and type(self.backend) is not PrometheusTSBDBackend:
+                        if (
+                            value is None
+                            and metric_name
+                            in METRIC_MAPPINGS_FOR_ROCKY_AND_NEWER_RELEASES
+                            and type(self.backend) is not PrometheusTSBDBackend
+                        ):
                             # Reattempting metric collection with new metric names.
                             # Some metric names have changed in newer Openstack releases
                             log.info(
                                 "Reattempting metric collection for type: %s and name: %s and resource_id %s",
                                 metric_type,
                                 metric_name,
-                                resource_id
+                                resource_id,
+                            )
+                            openstack_metric_name = (
+                                METRIC_MAPPINGS_FOR_ROCKY_AND_NEWER_RELEASES[
+                                    metric_name
+                                ]
                             )
-                            openstack_metric_name = METRIC_MAPPINGS_FOR_ROCKY_AND_NEWER_RELEASES[metric_name]
                             value = self.backend.collect_metric(
                                 metric_type, openstack_metric_name, resource_id
                             )
@@ -240,21 +249,23 @@ class PrometheusTSBDBackend(OpenstackBackend):
 
     def _build_prometheus_client(self, vim_account: dict) -> prometheus_client:
         url = vim_account["prometheus-config"]["prometheus_url"]
-        return prometheus_client(url, disable_ssl = True)
+        return prometheus_client(url, disable_ssl=True)
 
     def collect_metric(
         self, metric_type: MetricType, metric_name: str, resource_id: str
-        ):
+    ):
         metric = self.query_metric(metric_name, resource_id)
         return metric["value"][1] if metric else None
 
     def map_metric(self, metric_name: str):
         return self.map[metric_name]
 
-    def query_metric(self, metric_name, resource_id = None):
-        metrics = self.client.get_current_metric_value(metric_name = metric_name)
+    def query_metric(self, metric_name, resource_id=None):
+        metrics = self.client.get_current_metric_value(metric_name=metric_name)
         if resource_id:
-            metric = next(filter(lambda x: resource_id in x["metric"]["resource_id"], metrics))
+            metric = next(
+                filter(lambda x: resource_id in x["metric"]["resource_id"], metrics)
+            )
             return metric
         return metrics
 
@@ -264,10 +275,14 @@ class GnocchiBackend(OpenstackBackend):
         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, vim_session: object) -> gnocchi_client.Client:
+    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, vim_session: object) -> neutron_client.Client:
+    def _build_neutron_client(
+        self, vim_account: dict, vim_session: object
+    ) -> neutron_client.Client:
         return neutron_client.Client(session=vim_session)
 
     def collect_metric(
@@ -313,20 +328,24 @@ class GnocchiBackend(OpenstackBackend):
     def _collect_instance_disk_metric(self, openstack_metric_name, resource_id):
         value = None
         instances = self.client.resource.search(
-            resource_type='instance_disk',
-            query={'=': {'instance_id': resource_id}},
+            resource_type="instance_disk",
+            query={"=": {"instance_id": resource_id}},
         )
         for instance in instances:
             try:
                 measures = self.client.metric.get_measures(
-                    openstack_metric_name, resource_id=instance['id'], limit=1
+                    openstack_metric_name, resource_id=instance["id"], limit=1
                 )
                 if measures:
                     value = measures[-1][2]
 
             except gnocchiclient.exceptions.NotFound as e:
-                log.debug("No metric %s found for instance disk %s: %s", openstack_metric_name,
-                          instance['id'], e)
+                log.debug(
+                    "No metric %s found for instance disk %s: %s",
+                    openstack_metric_name,
+                    instance["id"],
+                    e,
+                )
         return value
 
     def _collect_instance_metric(self, openstack_metric_name, resource_id):
@@ -396,7 +415,9 @@ class CeilometerBackend(OpenstackBackend):
     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, vim_session: object) -> ceilometer_client.Client:
+    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(