diff --git a/osm_mon/cmd/mon_utils.py b/osm_mon/cmd/mon_utils.py
index 83dd130..88e7500 100644
--- a/osm_mon/cmd/mon_utils.py
+++ b/osm_mon/cmd/mon_utils.py
@@ -22,7 +22,6 @@
 
 
 def wait_till_commondb_is_ready(config, process_name="osm-mon", commondb_wait_time=5):
-
     logging.debug("wait_till_commondb_is_ready")
 
     while True:
@@ -39,7 +38,6 @@
 
 
 def wait_till_kafka_is_ready(config, process_name="osm-mon", kafka_wait_time=5):
-
     logging.debug("wait_till_kafka_is_ready")
 
     while True:
@@ -98,7 +96,6 @@
 def wait_till_core_services_are_ready(
     config, process_name="osm-mon", commondb_wait_time=5, kafka_wait_time=5
 ):
-
     logging.debug("wait_till_core_services_are_ready")
 
     if not config:
diff --git a/osm_mon/collector/vnf_collectors/vrops/vrops_helper.py b/osm_mon/collector/vnf_collectors/vrops/vrops_helper.py
index 2196326..8164510 100644
--- a/osm_mon/collector/vnf_collectors/vrops/vrops_helper.py
+++ b/osm_mon/collector/vnf_collectors/vrops/vrops_helper.py
@@ -103,7 +103,6 @@
         return resource_list
 
     def get_metrics(self, vdu_mappings={}, monitoring_params={}, vnfr=None, tags={}):
-
         monitoring_keys = {}
         # Collect the names of all the metrics we need to query
         for metric_entry in monitoring_params:
@@ -132,7 +131,6 @@
         vdu_mappings = sanitized_vdu_mappings
 
         try:
-
             # Now we can make a single call to vROPS to collect all relevant metrics for resources we need to monitor
             api_url = (
                 "/suite-api/api/resources/stats?IntervalType=MINUTES&IntervalCount=1"
diff --git a/osm_mon/server/server.py b/osm_mon/server/server.py
index 165888b..f05cdec 100755
--- a/osm_mon/server/server.py
+++ b/osm_mon/server/server.py
@@ -66,7 +66,6 @@
     async def _process_msg(self, topic, key, values):
         log.info("Message arrived: %s", values)
         try:
-
             if topic == "alarm_request":
                 if key == "create_alarm_request":
                     alarm_details = values["alarm_create_request"]
diff --git a/osm_mon/tests/unit/collector/vnf_collectors/vmware/test_vcd_collector.py b/osm_mon/tests/unit/collector/vnf_collectors/vmware/test_vcd_collector.py
index 3d92fd5..adb84c7 100644
--- a/osm_mon/tests/unit/collector/vnf_collectors/vmware/test_vcd_collector.py
+++ b/osm_mon/tests/unit/collector/vnf_collectors/vmware/test_vcd_collector.py
@@ -67,7 +67,6 @@
         super().tearDown()
 
     def test_collect_cpu_and_memory(self, mock_vm_moref_id):
-
         mock_vm_moref_id.return_value = "VMWARE-OID-VM-1"
         self.vnfd["vdu"][0]["monitoring-parameter"] = [
             {"id": "ubuntu_vnf_cpu_util", "performance-metric": "cpu_utilization"},
