azkaban-developers

Details

diff --git a/src/main/java/azkaban/executor/mail/DefaultMailCreator.java b/src/main/java/azkaban/executor/mail/DefaultMailCreator.java
index 4287743..a4e5038 100644
--- a/src/main/java/azkaban/executor/mail/DefaultMailCreator.java
+++ b/src/main/java/azkaban/executor/mail/DefaultMailCreator.java
@@ -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,7 +141,7 @@ public class DefaultMailCreator implements MailCreator {
       message.println("</table>");
       message.println("");
       String executionUrl =
-          "http://" + 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..4b66d82 100644
--- a/src/main/java/azkaban/executor/mail/MailCreator.java
+++ b/src/main/java/azkaban/executor/mail/MailCreator.java
@@ -25,8 +25,8 @@ public interface MailCreator {
       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,
diff --git a/src/main/java/azkaban/utils/Emailer.java b/src/main/java/azkaban/utils/Emailer.java
index 9d08163..b032bae 100644
--- a/src/main/java/azkaban/utils/Emailer.java
+++ b/src/main/java/azkaban/utils/Emailer.java
@@ -40,6 +40,7 @@ public class Emailer extends AbstractMailer implements Alerter {
 
   private boolean testMode = false;
 
+  private String scheme;
   private String clientHostname;
   private String clientPortNumber;
 
@@ -66,8 +67,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");
     }
 
@@ -133,7 +136,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) {