Enable black and pylint in tox.ini
[osm/POL.git] / osm_policy_module / alarming / service.py
index 0e355d8..dbc375e 100644 (file)
@@ -111,10 +111,17 @@ class AlarmingService:
                                 )
                                 alarm_action = dict()
                                 for action_type in ["ok", "insufficient-data", "alarm"]:
-                                    if "actions" in alarm_descriptor and action_type in alarm_descriptor["actions"]:
-                                        for url in alarm_descriptor["actions"][action_type]:
+                                    if (
+                                        "actions" in alarm_descriptor
+                                        and action_type in alarm_descriptor["actions"]
+                                    ):
+                                        for url in alarm_descriptor["actions"][
+                                            action_type
+                                        ]:
                                             if "webhook" in alarm_action:
-                                                alarm_action["webhook"].append(url["url"])
+                                                alarm_action["webhook"].append(
+                                                    url["url"]
+                                                )
                                             else:
                                                 alarm_action["webhook"] = [url["url"]]
                                 alarm_uuid = await self.mon_client.create_alarm(
@@ -132,10 +139,10 @@ class AlarmingService:
                                     nsr_id=nsr_id,
                                     vnf_member_index=vnfr["member-vnf-index-ref"],
                                     vdu_name=vdur["name"],
-                                    last_action='insufficient-data',
+                                    last_action="insufficient-data",
                                     id_suffix=0,
                                     ok_ack=False,
-                                    alarm_ack=False
+                                    alarm_ack=False,
                                 )
                                 for action_type in ["ok", "insufficient-data", "alarm"]:
                                     if (
@@ -211,8 +218,10 @@ class AlarmingService:
                 if vnf_member_index is None:
                     alarm_conditions = VnfAlarm.nsr_id == nsr_id
                 else:
-                    query_list = [VnfAlarm.nsr_id == nsr_id,
-                                  VnfAlarm.vnf_member_index == vnf_member_index]
+                    query_list = [
+                        VnfAlarm.nsr_id == nsr_id,
+                        VnfAlarm.vnf_member_index == vnf_member_index,
+                    ]
                     alarm_conditions = functools.reduce(operator.and_, query_list)
                 for alarm in VnfAlarmRepository.list(alarm_conditions):
                     log.debug("Deleting vnf alarm %s", alarm.alarm_uuid)
@@ -236,7 +245,7 @@ class AlarmingService:
             database.db.close()
 
     async def handle_alarm(self, alarm_uuid: str, status: str, payload: dict):
-        alert_timeout = int(self.conf.get('alert', 'timeout'))
+        alert_timeout = int(self.conf.get("alert", "timeout"))
         database.db.connect()
         try:
             with database.db.atomic():
@@ -251,14 +260,19 @@ class AlarmingService:
                     If both the status are 'ok', it avoid sending repetitive ok notification.
                     """
                     if action.type == status:
-                        if bool(self.conf.get('alert', 'enhanced_alarms')):
-                            if ((status != "ok" or (status == "ok" and alarm.ok_ack is False)) and
-                               (status != "alarm" or (status == "alarm" and alarm.alarm_ack is False))):
+                        if bool(self.conf.get("alert", "enhanced_alarms")):
+                            if (
+                                status != "ok"
+                                or (status == "ok" and alarm.ok_ack is False)
+                            ) and (
+                                status != "alarm"
+                                or (status == "alarm" and alarm.alarm_ack is False)
+                            ):
                                 log.info(
                                     "Executing request to url %s for vnf alarm %s with status %s",
                                     action.url,
                                     alarm.alarm_id,
-                                    status
+                                    status,
                                 )
                                 try:
                                     if status == "alarm" and alarm.last_action == "ok":
@@ -271,11 +285,18 @@ class AlarmingService:
                                 except Exception as e:
                                     log.exception(e)
 
-                                payload["notify_details"]["alarm_number"] = alarm.id_suffix
+                                payload["notify_details"][
+                                    "alarm_number"
+                                ] = alarm.id_suffix
                                 headers = {"content-type": "application/json"}
                                 try:
-                                    resp = requests.post(url=action.url, data=json.dumps(payload),
-                                                         headers=headers, verify=False, timeout=alert_timeout)
+                                    resp = requests.post(
+                                        url=action.url,
+                                        data=json.dumps(payload),
+                                        headers=headers,
+                                        verify=False,
+                                        timeout=alert_timeout,
+                                    )
                                     log.info("Response %s", resp)
                                     if resp.status_code == 200:
                                         if status == "ok":
@@ -288,26 +309,38 @@ class AlarmingService:
                                             alarm.alarm_ack = False
                                             alarm.ok_ack = False
                                             alarm.save()
+                                except ConnectionError:
+                                    log.exception(
+                                        "Error connecting to url %s", action.url
+                                    )
                                 except RequestException as e:
-                                    log.info("Error: RequestException while connecting to url %s", action.url)
+                                    log.info(
+                                        "Error: RequestException while connecting to url %s",
+                                        action.url,
+                                    )
                                     log.debug("RequestException %s", e)
 
-                                except ConnectionError:
-                                    log.exception("Error connecting to url %s", action.url)
                         else:
                             log.info(
                                 "Executing request to url %s for vnf alarm %s with status %s",
                                 action.url,
                                 alarm.alarm_id,
-                                status
+                                status,
                             )
                             try:
-                                requests.post(url=action.url, json=json.dumps(payload), timeout=alert_timeout)
-                            except RequestException as e:
-                                log.info("Error: RequestException while connecting to url %s", action.url)
-                                log.debug("RequestException %s", e)
+                                requests.post(
+                                    url=action.url,
+                                    json=json.dumps(payload),
+                                    timeout=alert_timeout,
+                                )
                             except ConnectionError:
                                 log.exception("Error connecting to url %s", action.url)
+                            except RequestException as e:
+                                log.info(
+                                    "Error: RequestException while connecting to url %s",
+                                    action.url,
+                                )
+                                log.debug("RequestException %s", e)
 
         except VnfAlarm.DoesNotExist:
             log.debug(