From 1c583ceadc1d23533f3d224bf19d26fc2db8a8bf Mon Sep 17 00:00:00 2001 From: Matt Sanford Date: Tue, 7 May 2013 15:45:10 -0700 Subject: [PATCH] Add pager duty user/password options. Prep for forthcoming (I hope) token change --- README.md | 2 ++ .../PagerDutyNotificationService.java | 17 ++++++++++++++++- .../seyren/core/util/config/SeyrenConfig.java | 18 ++++++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 757ca02e..124c18c7 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,8 @@ open http://localhost:8080/seyren #### PagerDuty * `PAGERDUTY_DOMAIN` - The PagerDuty domain to be notified. Default: `` +* `PAGERDUTY_USERNAME` - The PagerDuty API username. Default: `` +* `PAGERDUTY_PASSWORD` - The PagerDuty API Password. Default: `` #### Hubot * `HUBOT_URL` - The location where Hubot is running. Default `` diff --git a/seyren-core/src/main/java/com/seyren/core/service/notification/PagerDutyNotificationService.java b/seyren-core/src/main/java/com/seyren/core/service/notification/PagerDutyNotificationService.java index 22c30217..1cfcb973 100644 --- a/seyren-core/src/main/java/com/seyren/core/service/notification/PagerDutyNotificationService.java +++ b/seyren-core/src/main/java/com/seyren/core/service/notification/PagerDutyNotificationService.java @@ -47,8 +47,8 @@ public PagerDutyNotificationService(SeyrenConfig seyrenConfig) { @Override public void sendNotification(Check check, Subscription subscription, List alerts) throws NotificationFailedException { + PagerDutyClient client = createPagerDutyClient(); - PagerDutyClient client = new PagerDutyClient(seyrenConfig.getPagerDutyDomain(), "username", "password"); try { Map details = createNotificationDetails(check, alerts); @@ -77,4 +77,19 @@ private Map createNotificationDetails(Check check, List a return details; } + private PagerDutyClient createPagerDutyClient() { +// Awaiting merge of https://github.com/webmetrics/pagerduty-java/pull/2 to allow token auth. +// if (null != seyrenConfig.getPagerDutyToken() && !seyrenConfig.getPagerDutyToken().isEmpty()) { +// return new PagerDutyClient(seyrenConfig.getPagerDutyDomain(), +// seyrenConfig.getPagerDutyToken()); +// } else { +// return new PagerDutyClient(seyrenConfig.getPagerDutyDomain(), +// seyrenConfig.getPagerDutyUsername(), +// seyrenConfig.getPagerDutyPassword()); +// } + return new PagerDutyClient(seyrenConfig.getPagerDutyDomain(), + seyrenConfig.getPagerDutyUsername(), + seyrenConfig.getPagerDutyPassword()); + } + } diff --git a/seyren-core/src/main/java/com/seyren/core/util/config/SeyrenConfig.java b/seyren-core/src/main/java/com/seyren/core/util/config/SeyrenConfig.java index 504257a5..f021f6a9 100644 --- a/seyren-core/src/main/java/com/seyren/core/util/config/SeyrenConfig.java +++ b/seyren-core/src/main/java/com/seyren/core/util/config/SeyrenConfig.java @@ -29,6 +29,9 @@ public class SeyrenConfig { private final String graphiteUsername; private final String graphitePassword; private final String pagerDutyDomain; + private final String pagerDutyToken; + private final String pagerDutyUsername; + private final String pagerDutyPassword; private final String hipChatAuthToken; private final String hipChatUsername; private final String hubotUrl; @@ -64,6 +67,9 @@ public SeyrenConfig() { // PagerDuty this.pagerDutyDomain = configOrDefault("PAGERDUTY_DOMAIN", ""); + this.pagerDutyToken = configOrDefault("PAGERDUTY_TOKEN", ""); + this.pagerDutyUsername = configOrDefault("PAGERDUTY_USERNAME", ""); + this.pagerDutyPassword = configOrDefault("PAGERDUTY_PASSWORD", ""); // Hubot this.hubotUrl = configOrDefault(list("HUBOT_URL", "SEYREN_HUBOT_URL"), ""); @@ -81,6 +87,18 @@ public String getPagerDutyDomain() { return pagerDutyDomain; } + public String getPagerDutyToken() { + return pagerDutyToken; + } + + public String getPagerDutyUsername() { + return pagerDutyUsername; + } + + public String getPagerDutyPassword() { + return pagerDutyPassword; + } + public String getHipChatAuthToken() { return hipChatAuthToken; }