azkaban-developers

Merge pull request #248 from wyukawa/issue-247 Fix for GitHub

6/6/2014 7:57:13 AM

Details

diff --git a/src/main/java/azkaban/executor/mail/DefaultMailCreator.java b/src/main/java/azkaban/executor/mail/DefaultMailCreator.java
index 62e8eac..47e2ac9 100644
--- a/src/main/java/azkaban/executor/mail/DefaultMailCreator.java
+++ b/src/main/java/azkaban/executor/mail/DefaultMailCreator.java
@@ -51,8 +51,8 @@ public class DefaultMailCreator implements MailCreator {
 
   @Override
   public boolean createFirstErrorMessage(ExecutableFlow flow,
-      EmailMessage message, String azkabanName, String clientHostname,
-      String clientPortNumber, String... vars) {
+      EmailMessage message, String azkabanName, String scheme,
+      String clientHostname, String clientPortNumber, String... vars) {
 
     ExecutionOptions option = flow.getExecutionOptions();
     List<String> emailList = option.getFailureEmails();
@@ -90,9 +90,9 @@ public class DefaultMailCreator implements MailCreator {
       message.println("</table>");
       message.println("");
       String executionUrl =
-          "https://" + clientHostname + ":" + clientPortNumber + "/"
+          scheme + "://" + clientHostname + ":" + clientPortNumber + "/"
               + "executor?" + "execid=" + execId;
-      message.println("<a href='\"" + executionUrl + "\">" + flow.getFlowId()
+      message.println("<a href=\"" + executionUrl + "\">" + flow.getFlowId()
           + " Execution Link</a>");
 
       message.println("");
@@ -113,8 +113,8 @@ public class DefaultMailCreator implements MailCreator {
 
   @Override
   public boolean createErrorEmail(ExecutableFlow flow, EmailMessage message,
-      String azkabanName, String clientHostname, String clientPortNumber,
-      String... vars) {
+      String azkabanName, String scheme, String clientHostname,
+      String clientPortNumber, String... vars) {
 
     ExecutionOptions option = flow.getExecutionOptions();
 
@@ -141,9 +141,9 @@ public class DefaultMailCreator implements MailCreator {
       message.println("</table>");
       message.println("");
       String executionUrl =
-          "https://" + clientHostname + ":" + clientPortNumber + "/"
+          scheme + "://" + clientHostname + ":" + clientPortNumber + "/"
               + "executor?" + "execid=" + execId;
-      message.println("<a href='\"" + executionUrl + "\">" + flow.getFlowId()
+      message.println("<a href=\"" + executionUrl + "\">" + flow.getFlowId()
           + " Execution Link</a>");
 
       message.println("");
@@ -166,8 +166,8 @@ public class DefaultMailCreator implements MailCreator {
 
   @Override
   public boolean createSuccessEmail(ExecutableFlow flow, EmailMessage message,
-      String azkabanName, String clientHostname, String clientPortNumber,
-      String... vars) {
+      String azkabanName, String scheme, String clientHostname,
+      String clientPortNumber, String... vars) {
 
     ExecutionOptions option = flow.getExecutionOptions();
     List<String> emailList = option.getSuccessEmails();
@@ -194,7 +194,7 @@ public class DefaultMailCreator implements MailCreator {
       message.println("</table>");
       message.println("");
       String executionUrl =
-          "https://" + clientHostname + ":" + clientPortNumber + "/"
+          scheme + "://" + clientHostname + ":" + clientPortNumber + "/"
               + "executor?" + "execid=" + execId;
       message.println("<a href=\"" + executionUrl + "\">" + flow.getFlowId()
           + " Execution Link</a>");
diff --git a/src/main/java/azkaban/executor/mail/MailCreator.java b/src/main/java/azkaban/executor/mail/MailCreator.java
index f0f16a5..13f0185 100644
--- a/src/main/java/azkaban/executor/mail/MailCreator.java
+++ b/src/main/java/azkaban/executor/mail/MailCreator.java
@@ -21,14 +21,14 @@ import azkaban.utils.EmailMessage;
 
 public interface MailCreator {
   public boolean createFirstErrorMessage(ExecutableFlow flow,
-      EmailMessage message, String azkabanName, String clientHostname,
-      String clientPortNumber, String... vars);
+      EmailMessage message, String azkabanName, String scheme,
+      String clientHostname, String clientPortNumber, String... vars);
 
   public boolean createErrorEmail(ExecutableFlow flow, EmailMessage message,
-      String azkabanName, String clientHostname, String clientPortNumber,
-      String... vars);
+      String azkabanName, String scheme, String clientHostname,
+      String clientPortNumber, String... vars);
 
   public boolean createSuccessEmail(ExecutableFlow flow, EmailMessage message,
-      String azkabanName, String clientHostname, String clientPortNumber,
-      String... vars);
+      String azkabanName, String scheme, String clientHostname,
+      String clientPortNumber, String... vars);
 }
diff --git a/src/main/java/azkaban/utils/Emailer.java b/src/main/java/azkaban/utils/Emailer.java
index 9d08163..cdf44e4 100644
--- a/src/main/java/azkaban/utils/Emailer.java
+++ b/src/main/java/azkaban/utils/Emailer.java
@@ -38,8 +38,13 @@ import azkaban.utils.Props;
 public class Emailer extends AbstractMailer implements Alerter {
   private static Logger logger = Logger.getLogger(Emailer.class);
 
+  private static final String HTTPS = "https";
+
+  private static final String HTTP = "http";
+
   private boolean testMode = false;
 
+  private String scheme;
   private String clientHostname;
   private String clientPortNumber;
 
@@ -66,8 +71,10 @@ public class Emailer extends AbstractMailer implements Alerter {
     this.clientHostname = props.getString("jetty.hostname", "localhost");
 
     if (props.getBoolean("jetty.use.ssl", true)) {
+      this.scheme = HTTPS;
       this.clientPortNumber = props.getString("jetty.ssl.port");
     } else {
+      this.scheme = HTTP;
       this.clientPortNumber = props.getString("jetty.port");
     }
 
@@ -109,7 +116,7 @@ public class Emailer extends AbstractMailer implements Alerter {
         + mailCreator.getClass().getCanonicalName());
 
     boolean mailCreated =
-        mailCreator.createFirstErrorMessage(flow, message, azkabanName,
+        mailCreator.createFirstErrorMessage(flow, message, azkabanName, scheme,
             clientHostname, clientPortNumber);
 
     if (mailCreated && !testMode) {
@@ -133,7 +140,7 @@ public class Emailer extends AbstractMailer implements Alerter {
         + mailCreator.getClass().getCanonicalName());
 
     boolean mailCreated =
-        mailCreator.createErrorEmail(flow, message, azkabanName,
+        mailCreator.createErrorEmail(flow, message, azkabanName, scheme,
             clientHostname, clientPortNumber, extraReasons);
 
     if (mailCreated && !testMode) {
@@ -157,7 +164,7 @@ public class Emailer extends AbstractMailer implements Alerter {
         + mailCreator.getClass().getCanonicalName());
 
     boolean mailCreated =
-        mailCreator.createSuccessEmail(flow, message, azkabanName,
+        mailCreator.createSuccessEmail(flow, message, azkabanName, scheme,
             clientHostname, clientPortNumber);
 
     if (mailCreated && !testMode) {