- log.info("Executing request to url %s for vnf alarm %s with status %s", action.url,
- alarm.alarm_id, status)
- try:
- requests.post(url=action.url, json=json.dumps(payload))
- except ConnectionError:
- log.exception("Error connecting to url %s", action.url)
+ 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,
+ )
+ try:
+ if status == "alarm" and alarm.last_action == "ok":
+ alarm.id_suffix += 1
+ alarm.ok_ack = False
+ if status == "ok" and alarm.last_action == "alarm":
+ alarm.alarm_ack = False
+ alarm.last_action = status
+ alarm.save()
+ except Exception as e:
+ log.exception(e)
+
+ 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,
+ )
+ log.info("Response %s", resp)
+ if resp.status_code == 200:
+ if status == "ok":
+ alarm.ok_ack = True
+ alarm.save()
+ if status == "alarm":
+ alarm.alarm_ack = True
+ alarm.save()
+ if status == "insufficient-data":
+ 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.debug("RequestException %s", e)
+
+ else:
+ log.info(
+ "Executing request to url %s for vnf alarm %s with status %s",
+ action.url,
+ alarm.alarm_id,
+ status,
+ )
+ try:
+ 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)