def __init__(self): mq = Messaging() FanoutConsumer.__init__(self, mq.connection) threading.Thread.__init__(self) self.pd = PagerDutyClient()
def __init__(self, mq): self.mq = mq self.pd = PagerDutyClient() MessageHandler.__init__(self)
class PagerDutyMessage(MessageHandler): def __init__(self, mq): self.mq = mq self.pd = PagerDutyClient() MessageHandler.__init__(self) def on_message(self, headers, body): LOG.debug("Received: %s", body) try: pdAlert = Alert.parse_alert(body) except ValueError: return if 'pagerduty' not in pdAlert.tags: return if pdAlert.status == status_code.OPEN: self.pd.trigger_event(pdAlert) elif pdAlert.status == status_code.ACK: self.pd.acknowledge_event(pdAlert) elif pdAlert.status == status_code.CLOSED: self.pd.resolve_event(pdAlert) def on_disconnected(self): self.mq.reconnect()
class PagerDutyMessage(FanoutConsumer, threading.Thread): def __init__(self): mq = Messaging() FanoutConsumer.__init__(self, mq.connection) threading.Thread.__init__(self) self.pd = PagerDutyClient() def on_message(self, body, message): LOG.debug("Received: %s", body) try: pdAlert = AlertDocument.parse_alert(body) except ValueError: return if pdAlert: if not any(tag.startswith('pagerduty') for tag in pdAlert.tags): return # do not trigger new incidents from updates if pdAlert.origin == 'pagerduty/webhook': # set by alerta /pagerduty API endpoint return for tag in pdAlert.tags: if tag.startswith('pagerduty'): _, service = tag.split('=', 1) LOG.info('PagerDuty Incident on %s %s -> %s', service, pdAlert.get_id(), pdAlert.status) incident_key = pdAlert.get_id() if pdAlert.status == status_code.OPEN: self.pd.trigger_event(pdAlert, service, incident_key=incident_key) elif pdAlert.status == status_code.ACK: self.pd.acknowledge_event(pdAlert, service, incident_key=incident_key) elif pdAlert.status == status_code.CLOSED: self.pd.resolve_event(pdAlert, service, incident_key=incident_key)
class PagerDutyMessage(FanoutConsumer, threading.Thread): def __init__(self): mq = Messaging() self.connection = mq.connection FanoutConsumer.__init__(self, self.connection) threading.Thread.__init__(self) self.pd = PagerDutyClient() def on_message(self, body, message): LOG.debug("Received: %s", body) try: pdAlert = AlertDocument.parse_alert(body) except ValueError: return if pdAlert: if not any(tag.startswith('pagerduty') for tag in pdAlert.tags): return # do not trigger new incidents from updates if pdAlert.origin == 'pagerduty/webhook': # set by alerta /pagerduty API endpoint return for tag in pdAlert.tags: if tag.startswith('pagerduty'): _, service = tag.split('=', 1) LOG.info('PagerDuty Incident on %s %s -> %s', service, pdAlert.get_id(), pdAlert.status) incident_key = pdAlert.get_id() if pdAlert.status == status_code.OPEN: self.pd.trigger_event(pdAlert, service, incident_key=incident_key) elif pdAlert.status == status_code.ACK: self.pd.acknowledge_event(pdAlert, service, incident_key=incident_key) elif pdAlert.status == status_code.CLOSED: self.pd.resolve_event(pdAlert, service, incident_key=incident_key)
class PagerDutyMessage(MessageHandler): def __init__(self, mq): self.mq = mq self.pd = PagerDutyClient() MessageHandler.__init__(self) def on_message(self, headers, body): LOG.debug("Received: %s", body) try: pdAlert = Alert.parse_alert(body) except ValueError: return # do not trigger new incidents from updates if pdAlert.origin == 'pagerduty/webhook': return if 'pagerduty' not in pdAlert.tags.keys(): return LOG.info('PagerDuty Incident %s status %s', pdAlert.get_id(), pdAlert.status) incident_key = pdAlert.get_id() if pdAlert.status == status_code.OPEN: self.pd.trigger_event(pdAlert, incident_key=incident_key) elif pdAlert.status == status_code.ACK: self.pd.acknowledge_event(pdAlert, incident_key=incident_key) elif pdAlert.status == status_code.CLOSED: self.pd.resolve_event(pdAlert, incident_key=incident_key) def on_disconnected(self): self.mq.reconnect()