azkaban-aplcache

disallow SLA with no action (#1370) This PR is attempting

8/21/2017 10:12:16 PM

Details

diff --git a/azkaban-web-server/src/main/java/azkaban/webapp/servlet/ScheduleServlet.java b/azkaban-web-server/src/main/java/azkaban/webapp/servlet/ScheduleServlet.java
index 67e9ace..2110865 100644
--- a/azkaban-web-server/src/main/java/azkaban/webapp/servlet/ScheduleServlet.java
+++ b/azkaban-web-server/src/main/java/azkaban/webapp/servlet/ScheduleServlet.java
@@ -204,14 +204,16 @@ public class ScheduleServlet extends LoginAbstractAzkabanServlet {
         }
       }
 
+      if (slaOptions.isEmpty()) {
+        throw new ScheduleManagerException(
+            String.format("SLA for schedule %s must have at least one action", scheduleId));
+      }
+
       sched.setSlaOptions(slaOptions);
       this.scheduleManager.insertSchedule(sched);
-
-      if (slaOptions != null) {
-        this.projectManager.postProjectEvent(project, EventType.SLA,
-            user.getUserId(), "SLA for flow " + sched.getFlowName()
-                + " has been added/changed.");
-      }
+      this.projectManager.postProjectEvent(project, EventType.SLA,
+          user.getUserId(), "SLA for flow " + sched.getFlowName()
+              + " has been added/changed.");
 
     } catch (final ServletException e) {
       ret.put("error", e.getMessage());