From 0b10f5edcf5117e0244941c9a7eb6b5512871eb1 Mon Sep 17 00:00:00 2001 From: Andrey Vertiprahov Date: Fri, 7 Feb 2020 12:00:49 +0500 Subject: [PATCH 1/2] Add queue params to close_tt and add_comment method on TT adapter. --- core/tt/base.py | 6 ++++-- fm/models/activealarm.py | 2 ++ services/escalator/escalation.py | 22 ++++++++++++++++------ 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/core/tt/base.py b/core/tt/base.py index 32739a2616..3462b7fff6 100644 --- a/core/tt/base.py +++ b/core/tt/base.py @@ -90,7 +90,7 @@ class BaseTTSystem(object): """ raise NotImplementedError() - def close_tt(self, tt_id, subject=None, body=None, reason=None, login=None): + def close_tt(self, tt_id, subject=None, body=None, reason=None, login=None, queue=None): """ Close TT :param tt_id: TT id, as returned by create_tt @@ -98,18 +98,20 @@ class BaseTTSystem(object): :param body: Closing message body :param reason: Final reason :param login: User login + :param queue: ticket queue :returns: Boolean. True, when alarm is closed properly :raises TTError: """ raise NotImplementedError() - def add_comment(self, tt_id, subject=None, body=None, login=None): + def add_comment(self, tt_id, subject=None, body=None, login=None, queue=None): """ Append comment to TT :param tt_id: TT id, as returned by create_tt :param subject: Closing message subject :param body: Closing message body :param login: User login + :param queue: ticket queue :raises TTError: """ raise NotImplementedError() diff --git a/fm/models/activealarm.py b/fm/models/activealarm.py index 3c9b10b647..25db1e31e9 100644 --- a/fm/models/activealarm.py +++ b/fm/models/activealarm.py @@ -337,6 +337,8 @@ class ActiveAlarm(Document): if self.clear_notification_group else None, close_tt=self.close_tt, + login="correlator", + queue=a.managed_object.tt_queue, ) # Gather diagnostics AlarmDiagnosticConfig.on_clear(a) diff --git a/services/escalator/escalation.py b/services/escalator/escalation.py index dff9da4532..63b179fa3f 100644 --- a/services/escalator/escalation.py +++ b/services/escalator/escalation.py @@ -41,7 +41,7 @@ retry_lock = threading.Lock() next_retry = datetime.datetime.now() -def escalate(alarm_id, escalation_id, escalation_delay, *args, **kwargs): +def escalate(alarm_id, escalation_id, escalation_delay, login="correlator", *args, **kwargs): def log(message, *args): msg = message % args logger.info("[%s] %s", alarm_id, msg) @@ -187,7 +187,7 @@ def escalate(alarm_id, escalation_id, escalation_delay, *args, **kwargs): reason=pre_reason, subject=subject, body=body, - login="correlator", + login=login, timestamp=alarm.timestamp, ) except TemporaryTTError as e: @@ -247,7 +247,10 @@ def escalate(alarm_id, escalation_id, escalation_delay, *args, **kwargs): try: log("Appending comment to TT %s", tt_id) tts.add_comment( - c_tt_id, body="Covered by TT %s" % tt_id, login="correlator" + c_tt_id, + body="Covered by TT %s" % tt_id, + login=login, + queue=mo.tt_queue, ) metrics["escalation_tt_comment"] += 1 except NotImplementedError: @@ -294,17 +297,22 @@ def escalate(alarm_id, escalation_id, escalation_delay, *args, **kwargs): if alarm.clear_notification_group else None, close_tt=alarm.close_tt, + login=login, + queue=mo.tt_queue, ) elif nalarm == "A" and not nalarm.escalation_tt and tt_id: logger.error("[%s] Alarm without escalation TT: %s", alarm.id, tt_id) logger.info("[%s] Escalations loop end", alarm_id) -def notify_close(alarm_id, tt_id, subject, body, notification_group_id, close_tt=False): +def notify_close( + alarm_id, tt_id, subject, body, notification_group_id, close_tt=False, login=None, queue=None +): def log(message, *args): msg = message % args logger.info("[%s] %s", alarm_id, msg) + login = login or "correlator" if tt_id: alarm = get_alarm(alarm_id) alarm.set_escalation_close_ctx() @@ -325,7 +333,7 @@ def notify_close(alarm_id, tt_id, subject, body, notification_group_id, close_tt # Close tt try: log("Closing TT %s", tt_id) - tts.close_tt(c_tt_id, subject=subject, body=body, login="correlator") + tts.close_tt(c_tt_id, subject=subject, body=body, login=login, queue=queue) metrics["escalation_tt_close"] += 1 if alarm: alarm.close_escalation() @@ -349,7 +357,9 @@ def notify_close(alarm_id, tt_id, subject, body, notification_group_id, close_tt # Append comment to tt try: log("Appending comment to TT %s", tt_id) - tts.add_comment(c_tt_id, subject=subject, body=body, login="correlator") + tts.add_comment( + c_tt_id, subject=subject, body=body, login=login, queue=queue + ) metrics["escalation_tt_comment"] += 1 except TTError as e: log("Failed to add comment to %s: %s", tt_id, e) -- GitLab From b889f593755cd600e025c3dcb83c4ebfe02a76fd Mon Sep 17 00:00:00 2001 From: Andrey Vertiprahov Date: Fri, 7 Feb 2020 13:46:36 +0500 Subject: [PATCH 2/2] Add queue to stub TT. --- services/escalator/tt/stub.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/services/escalator/tt/stub.py b/services/escalator/tt/stub.py index b5462fcfac..17634dba01 100644 --- a/services/escalator/tt/stub.py +++ b/services/escalator/tt/stub.py @@ -41,7 +41,7 @@ class StubTTSystem(BaseTTSystem): ) return str(uuid.uuid4()) - def add_comment(self, tt_id, subject=None, body=None, login=None): + def add_comment(self, tt_id, subject=None, body=None, login=None, queue=None): self.logger.info( "add_comment(tt_id=%s, subject=%s, body=%s, login=%s)", tt_id, subject, body, login ) @@ -63,7 +63,7 @@ class StubTTSystem(BaseTTSystem): """ self.logger.info("Object %s appended to group TT %s", obj, gtt_id) - def close_tt(self, tt_id, subject=None, body=None, reason=None, login=None): + def close_tt(self, tt_id, subject=None, body=None, reason=None, login=None, queue=None): """ Close TT :param tt_id: TT id, as returned by create_tt @@ -71,6 +71,7 @@ class StubTTSystem(BaseTTSystem): :param body: Closing message body :param reason: Final reason :param login: User login + :param queue: ticket queue :returns: Boolean. True, when alarm is closed properly :raises TTError: """ -- GitLab