From 8e51d265954e1a2b0908efe46bc1fbe2ea772644 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C4=93teris=20Caune?= Date: Tue, 9 Jun 2020 13:26:15 +0300 Subject: [PATCH] Removing Pager Team integration, project appears to be discontinued --- CHANGELOG.md | 5 ++ hc/api/tests/test_notify.py | 8 +- hc/api/transports.py | 16 +--- hc/front/tests/test_add_pagerteam.py | 32 -------- hc/front/urls.py | 1 - hc/front/views.py | 20 ----- static/img/integrations/setup_pagerteam_1.png | Bin 37216 -> 0 bytes templates/docs/configuring_notifications.html | 4 +- templates/docs/configuring_notifications.md | 4 +- templates/front/channels.html | 11 +-- templates/front/welcome.html | 7 -- templates/integrations/add_pagerteam.html | 71 ------------------ .../integrations/pagerteam_description.html | 5 -- templates/integrations/pagerteam_title.html | 1 - 14 files changed, 14 insertions(+), 171 deletions(-) delete mode 100644 hc/front/tests/test_add_pagerteam.py delete mode 100644 static/img/integrations/setup_pagerteam_1.png delete mode 100644 templates/integrations/add_pagerteam.html delete mode 100644 templates/integrations/pagerteam_description.html delete mode 100644 templates/integrations/pagerteam_title.html diff --git a/CHANGELOG.md b/CHANGELOG.md index c7e484fc..fd9e1bb2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog All notable changes to this project will be documented in this file. +## Unreleased + +### Bug Fixes +- Removing Pager Team integration, project appears to be discontinued + ## v1.15.0 - 2020-06-04 ### Improvements diff --git a/hc/api/tests/test_notify.py b/hc/api/tests/test_notify.py index c4054d01..36772d05 100644 --- a/hc/api/tests/test_notify.py +++ b/hc/api/tests/test_notify.py @@ -394,14 +394,10 @@ class NotifyTestCase(BaseTestCase): @patch("hc.api.transports.requests.request") def test_pagerteam(self, mock_post): self._setup_data("pagerteam", "123") - mock_post.return_value.status_code = 200 self.channel.notify(self.check) - assert Notification.objects.count() == 1 - - args, kwargs = mock_post.call_args - payload = kwargs["json"] - self.assertEqual(payload["event_type"], "trigger") + self.assertFalse(mock_post.called) + self.assertEqual(Notification.objects.count(), 0) @patch("hc.api.transports.requests.request") def test_slack(self, mock_post): diff --git a/hc/api/transports.py b/hc/api/transports.py index 8629a20e..e41b6fb2 100644 --- a/hc/api/transports.py +++ b/hc/api/transports.py @@ -331,20 +331,8 @@ class PagerTree(HttpTransport): class PagerTeam(HttpTransport): - def notify(self, check): - url = self.channel.value - headers = {"Content-Type": "application/json"} - payload = { - "incident_key": str(check.code), - "event_type": "trigger" if check.status == "down" else "resolve", - "title": tmpl("pagerteam_title.html", check=check), - "description": tmpl("pagerteam_description.html", check=check), - "client": settings.SITE_NAME, - "client_url": settings.SITE_ROOT, - "tags": ",".join(check.tags_list()), - } - - return self.post(url, json=payload, headers=headers) + def is_noop(self, check): + return True class Pushbullet(HttpTransport): diff --git a/hc/front/tests/test_add_pagerteam.py b/hc/front/tests/test_add_pagerteam.py deleted file mode 100644 index 80dad608..00000000 --- a/hc/front/tests/test_add_pagerteam.py +++ /dev/null @@ -1,32 +0,0 @@ -from hc.api.models import Channel -from hc.test import BaseTestCase - - -class AddPagerTeamTestCase(BaseTestCase): - def setUp(self): - super(AddPagerTeamTestCase, self).setUp() - self.url = "/projects/%s/add_pagerteam/" % self.project.code - - def test_instructions_work(self): - self.client.login(username="alice@example.org", password="password") - r = self.client.get(self.url) - self.assertContains(r, "Pager Team") - - def test_it_works(self): - form = {"value": "http://example.org"} - - self.client.login(username="alice@example.org", password="password") - r = self.client.post(self.url, form) - self.assertRedirects(r, self.channels_url) - - c = Channel.objects.get() - self.assertEqual(c.kind, "pagerteam") - self.assertEqual(c.value, "http://example.org") - self.assertEqual(c.project, self.project) - - def test_it_rejects_bad_url(self): - form = {"value": "not an URL"} - - self.client.login(username="alice@example.org", password="password") - r = self.client.post(self.url, form) - self.assertContains(r, "Enter a valid URL") diff --git a/hc/front/urls.py b/hc/front/urls.py index 08b547e4..0d9f44b8 100644 --- a/hc/front/urls.py +++ b/hc/front/urls.py @@ -61,7 +61,6 @@ project_urls = [ path("add_mattermost/", views.add_mattermost, name="hc-add-mattermost"), path("add_msteams/", views.add_msteams, name="hc-add-msteams"), path("add_opsgenie/", views.add_opsgenie, name="hc-add-opsgenie"), - path("add_pagerteam/", views.add_pagerteam, name="hc-add-pagerteam"), path("add_pagertree/", views.add_pagertree, name="hc-add-pagertree"), path("add_pd/", views.add_pd, name="hc-add-pd"), path("add_pdc/", views.add_pdc, name="hc-add-pdc"), diff --git a/hc/front/views.py b/hc/front/views.py index 44780d55..db7b0121 100644 --- a/hc/front/views.py +++ b/hc/front/views.py @@ -1029,26 +1029,6 @@ def add_pagertree(request, code): return render(request, "integrations/add_pagertree.html", ctx) -@login_required -def add_pagerteam(request, code): - project = _get_project_for_user(request, code) - - if request.method == "POST": - form = forms.AddUrlForm(request.POST) - if form.is_valid(): - channel = Channel(project=project, kind="pagerteam") - channel.value = form.cleaned_data["value"] - channel.save() - - channel.assign_all_checks() - return redirect("hc-p-channels", project.code) - else: - form = forms.AddUrlForm() - - ctx = {"page": "channels", "project": project, "form": form} - return render(request, "integrations/add_pagerteam.html", ctx) - - @login_required def add_slack(request, code): project = _get_project_for_user(request, code) diff --git a/static/img/integrations/setup_pagerteam_1.png b/static/img/integrations/setup_pagerteam_1.png deleted file mode 100644 index 63acf2766a177c5fc480001c8a26a4414ed33e38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37216 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

If you want to receive repeated notifications for as long as a particular check is down, you have a few different options:

    -
  • If you use an incident management system (PagerDuty, VictorOps, OpsGenie, PagerTree, -Pager Team), you can set up escalation rules there.
  • +
  • If you use an incident management system (PagerDuty, VictorOps, OpsGenie, +PagerTree), you can set up escalation rules there.
  • Use the Pushover integration with the "Emergency" priority. Pushover will play a loud notification sound on your phone every 5 minutes until the notification is acknowledged.
  • diff --git a/templates/docs/configuring_notifications.md b/templates/docs/configuring_notifications.md index 173578a6..c73ad488 100644 --- a/templates/docs/configuring_notifications.md +++ b/templates/docs/configuring_notifications.md @@ -44,8 +44,8 @@ When an account exceeds its SMS / WhatsApp monthly limit, SITE_NAME will: If you want to receive repeated notifications for as long as a particular check is down, you have a few different options: -* If you use an **incident management system** (PagerDuty, VictorOps, OpsGenie, PagerTree, -Pager Team), you can set up escalation rules there. +* If you use an **incident management system** (PagerDuty, VictorOps, OpsGenie, +PagerTree), you can set up escalation rules there. * Use the **Pushover** integration with the "Emergency" priority. Pushover will play a loud notification sound on your phone every 5 minutes until the notification is acknowledged. diff --git a/templates/front/channels.html b/templates/front/channels.html index 96c8b86c..6201e9d8 100644 --- a/templates/front/channels.html +++ b/templates/front/channels.html @@ -108,7 +108,7 @@ {% else %} Unconfirmed {% endif %} - {% elif ch.kind == "hipchat" %} + {% elif ch.kind == "hipchat" or ch.kind == "pagerteam" %} Retired {% else %} Ready to deliver @@ -277,15 +277,6 @@ {% endif %} -
  • - PagerTeam icon - -

    Pager Team

    -

    On-call rotations without limits.

    - Add Integration -
  • -
  • PagerTree icon diff --git a/templates/front/welcome.html b/templates/front/welcome.html index a0a9ca8a..38bdaa26 100644 --- a/templates/front/welcome.html +++ b/templates/front/welcome.html @@ -405,13 +405,6 @@ {% endif %} -
    -
    - -

    Pager Team
    Incident Management

    -
    -
    -
    diff --git a/templates/integrations/add_pagerteam.html b/templates/integrations/add_pagerteam.html deleted file mode 100644 index ed313932..00000000 --- a/templates/integrations/add_pagerteam.html +++ /dev/null @@ -1,71 +0,0 @@ -{% extends "base.html" %} -{% load humanize static hc_extras %} - -{% block title %}Pager Team Integration for {% site_name %}{% endblock %} - - -{% block content %} -
    -
    -

    Pager Team

    - -

    You can integrate Pager Team - with {% site_name %} to alert your on-call rotation whenever a check goes down.

    - -

    Setup Guide

    - -
    -
    - -

    - Log into your Pager Team account, select the rotation you wish to add this integration to. Click the Copy Webhook button. -

    -
    -
    - Click create integration button -
    -
    - -
    -
    - -

    - Paste the Webhook URL below. Save the integration, and you are done! -

    -
    -
    - -

    Integration Settings

    - -
    - {% csrf_token %} -
    - -
    - - - {% if form.value.errors %} -
    - {{ form.value.errors|join:"" }} -
    - {% endif %} -
    -
    -
    -
    - -
    -
    -
    -
    -
    -{% endblock %} diff --git a/templates/integrations/pagerteam_description.html b/templates/integrations/pagerteam_description.html deleted file mode 100644 index 22c9e800..00000000 --- a/templates/integrations/pagerteam_description.html +++ /dev/null @@ -1,5 +0,0 @@ -{% load humanize %} -{{ check.name_then_code }} is {{ check.status|upper }}. -{% if check.status == "down" %} -Last ping was {{ check.last_ping|naturaltime }}. -{% endif %} diff --git a/templates/integrations/pagerteam_title.html b/templates/integrations/pagerteam_title.html deleted file mode 100644 index 29274284..00000000 --- a/templates/integrations/pagerteam_title.html +++ /dev/null @@ -1 +0,0 @@ -{{ check.name_then_code }} is {{ check.status|upper }}