azkaban-aplcache

Merge pull request #663 from erwa/fetch-project-id Add

6/6/2016 9:00:43 PM

Details

.gitignore 15(+8 -7)

diff --git a/.gitignore b/.gitignore
index 356c17c..137c932 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,10 +1,11 @@
-bin/
-build/
-.gradle/
-.settings/
-.idea/
 *.iml
-/bin
+*.log
+*.swp
 .classpath
+.gradle/
+.idea/
 .project
-*.swp
+.settings/
+/bin
+bin/
+build/
diff --git a/azkaban-webserver/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java b/azkaban-webserver/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java
index 4323d46..72c9c54 100644
--- a/azkaban-webserver/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java
+++ b/azkaban-webserver/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java
@@ -217,96 +217,95 @@ public class ProjectManagerServlet extends LoginAbstractAzkabanServlet {
     String projectName = getParam(req, "project");
     User user = session.getUser();
 
-    HashMap<String, Object> ret = new HashMap<String, Object>();
+    HashMap<String, Object> ret = new HashMap<>();
     ret.put("project", projectName);
 
     Project project = projectManager.getProject(projectName);
     if (project == null) {
       ret.put("error", "Project " + projectName + " doesn't exist.");
-      return;
-    }
-
-    ret.put("projectId", project.getId());
-    String ajaxName = getParam(req, "ajax");
-    if (ajaxName.equals("fetchProjectLogs")) {
-      if (handleAjaxPermission(project, user, Type.READ, ret)) {
-        ajaxFetchProjectLogEvents(project, req, resp, ret, user);
-      }
-    } else if (ajaxName.equals("fetchflowjobs")) {
-      if (handleAjaxPermission(project, user, Type.READ, ret)) {
-        ajaxFetchFlow(project, ret, req, resp);
-      }
-    } else if (ajaxName.equals("fetchflowdetails")) {
-      if (handleAjaxPermission(project, user, Type.READ, ret)) {
-        ajaxFetchFlowDetails(project, ret, req);
-      }
-    } else if (ajaxName.equals("fetchflowgraph")) {
-      if (handleAjaxPermission(project, user, Type.READ, ret)) {
-        ajaxFetchFlowGraph(project, ret, req);
-      }
-    } else if (ajaxName.equals("fetchflownodedata")) {
-      if (handleAjaxPermission(project, user, Type.READ, ret)) {
-        ajaxFetchFlowNodeData(project, ret, req);
-      }
-    } else if (ajaxName.equals("fetchprojectflows")) {
-      if (handleAjaxPermission(project, user, Type.READ, ret)) {
-        ajaxFetchProjectFlows(project, ret, req);
-      }
-    } else if (ajaxName.equals("changeDescription")) {
-      if (handleAjaxPermission(project, user, Type.WRITE, ret)) {
-        ajaxChangeDescription(project, ret, req, user);
-      }
-    } else if (ajaxName.equals("getPermissions")) {
-      if (handleAjaxPermission(project, user, Type.READ, ret)) {
-        ajaxGetPermissions(project, ret);
-      }
-    } else if (ajaxName.equals("getGroupPermissions")) {
-      if (handleAjaxPermission(project, user, Type.READ, ret)) {
-        ajaxGetGroupPermissions(project, ret);
-      }
-    } else if (ajaxName.equals("getProxyUsers")) {
-      if (handleAjaxPermission(project, user, Type.READ, ret)) {
-        ajaxGetProxyUsers(project, ret);
-      }
-    } else if (ajaxName.equals("changePermission")) {
-      if (handleAjaxPermission(project, user, Type.ADMIN, ret)) {
-        ajaxChangePermissions(project, ret, req, user);
-      }
-    } else if (ajaxName.equals("addPermission")) {
-      if (handleAjaxPermission(project, user, Type.ADMIN, ret)) {
-        ajaxAddPermission(project, ret, req, user);
-      }
-    } else if (ajaxName.equals("addProxyUser")) {
-      if (handleAjaxPermission(project, user, Type.ADMIN, ret)) {
-        ajaxAddProxyUser(project, ret, req, user);
-      }
-    } else if (ajaxName.equals("removeProxyUser")) {
-      if (handleAjaxPermission(project, user, Type.ADMIN, ret)) {
-        ajaxRemoveProxyUser(project, ret, req, user);
-      }
-    } else if (ajaxName.equals("fetchFlowExecutions")) {
-      if (handleAjaxPermission(project, user, Type.READ, ret)) {
-        ajaxFetchFlowExecutions(project, ret, req);
-      }
-    } else if (ajaxName.equals("fetchLastSuccessfulFlowExecution")) {
-      if (handleAjaxPermission(project, user, Type.READ, ret)) {
-        ajaxFetchLastSuccessfulFlowExecution(project, ret, req);
-      }
-    } else if (ajaxName.equals("fetchJobInfo")) {
-      if (handleAjaxPermission(project, user, Type.READ, ret)) {
-        ajaxFetchJobInfo(project, ret, req);
-      }
-    } else if (ajaxName.equals("setJobOverrideProperty")) {
-      if (handleAjaxPermission(project, user, Type.WRITE, ret)) {
-        ajaxSetJobOverrideProperty(project, ret, req);
-      }
     } else {
-      ret.put("error", "Cannot execute command " + ajaxName);
+      ret.put("projectId", project.getId());
+      String ajaxName = getParam(req, "ajax");
+      if (ajaxName.equals("getProjectId")) {
+        // Do nothing, since projectId is added to all AJAX requests.
+      } else if (ajaxName.equals("fetchProjectLogs")) {
+        if (handleAjaxPermission(project, user, Type.READ, ret)) {
+          ajaxFetchProjectLogEvents(project, req, ret);
+        }
+      } else if (ajaxName.equals("fetchflowjobs")) {
+        if (handleAjaxPermission(project, user, Type.READ, ret)) {
+          ajaxFetchFlow(project, ret, req);
+        }
+      } else if (ajaxName.equals("fetchflowdetails")) {
+        if (handleAjaxPermission(project, user, Type.READ, ret)) {
+          ajaxFetchFlowDetails(project, ret, req);
+        }
+      } else if (ajaxName.equals("fetchflowgraph")) {
+        if (handleAjaxPermission(project, user, Type.READ, ret)) {
+          ajaxFetchFlowGraph(project, ret, req);
+        }
+      } else if (ajaxName.equals("fetchflownodedata")) {
+        if (handleAjaxPermission(project, user, Type.READ, ret)) {
+          ajaxFetchFlowNodeData(project, ret, req);
+        }
+      } else if (ajaxName.equals("fetchprojectflows")) {
+        if (handleAjaxPermission(project, user, Type.READ, ret)) {
+          ajaxFetchProjectFlows(project, ret, req);
+        }
+      } else if (ajaxName.equals("changeDescription")) {
+        if (handleAjaxPermission(project, user, Type.WRITE, ret)) {
+          ajaxChangeDescription(project, ret, req, user);
+        }
+      } else if (ajaxName.equals("getPermissions")) {
+        if (handleAjaxPermission(project, user, Type.READ, ret)) {
+          ajaxGetPermissions(project, ret);
+        }
+      } else if (ajaxName.equals("getGroupPermissions")) {
+        if (handleAjaxPermission(project, user, Type.READ, ret)) {
+          ajaxGetGroupPermissions(project, ret);
+        }
+      } else if (ajaxName.equals("getProxyUsers")) {
+        if (handleAjaxPermission(project, user, Type.READ, ret)) {
+          ajaxGetProxyUsers(project, ret);
+        }
+      } else if (ajaxName.equals("changePermission")) {
+        if (handleAjaxPermission(project, user, Type.ADMIN, ret)) {
+          ajaxChangePermissions(project, ret, req, user);
+        }
+      } else if (ajaxName.equals("addPermission")) {
+        if (handleAjaxPermission(project, user, Type.ADMIN, ret)) {
+          ajaxAddPermission(project, ret, req, user);
+        }
+      } else if (ajaxName.equals("addProxyUser")) {
+        if (handleAjaxPermission(project, user, Type.ADMIN, ret)) {
+          ajaxAddProxyUser(project, ret, req, user);
+        }
+      } else if (ajaxName.equals("removeProxyUser")) {
+        if (handleAjaxPermission(project, user, Type.ADMIN, ret)) {
+          ajaxRemoveProxyUser(project, ret, req, user);
+        }
+      } else if (ajaxName.equals("fetchFlowExecutions")) {
+        if (handleAjaxPermission(project, user, Type.READ, ret)) {
+          ajaxFetchFlowExecutions(project, ret, req);
+        }
+      } else if (ajaxName.equals("fetchLastSuccessfulFlowExecution")) {
+        if (handleAjaxPermission(project, user, Type.READ, ret)) {
+          ajaxFetchLastSuccessfulFlowExecution(project, ret, req);
+        }
+      } else if (ajaxName.equals("fetchJobInfo")) {
+        if (handleAjaxPermission(project, user, Type.READ, ret)) {
+          ajaxFetchJobInfo(project, ret, req);
+        }
+      } else if (ajaxName.equals("setJobOverrideProperty")) {
+        if (handleAjaxPermission(project, user, Type.WRITE, ret)) {
+          ajaxSetJobOverrideProperty(project, ret, req);
+        }
+      } else {
+        ret.put("error", "Cannot execute command " + ajaxName);
+      }
     }
 
-    if (ret != null) {
-      this.writeJSON(resp, ret);
-    }
+    this.writeJSON(resp, ret);
   }
 
   private boolean handleAjaxPermission(Project project, User user, Type type,
@@ -320,17 +319,11 @@ public class ProjectManagerServlet extends LoginAbstractAzkabanServlet {
   }
 
   private void ajaxFetchProjectLogEvents(Project project,
-      HttpServletRequest req, HttpServletResponse resp,
-      HashMap<String, Object> ret, User user) throws ServletException {
-    if (!hasPermission(project, user, Type.READ)) {
-      ret.put("error", "Permission denied. Need READ access.");
-      return;
-    }
-
+      HttpServletRequest req, HashMap<String, Object> ret) throws ServletException {
     int num = this.getIntParam(req, "size", 1000);
     int skip = this.getIntParam(req, "skip", 0);
 
-    List<ProjectLogEvent> logEvents = null;
+    List<ProjectLogEvent> logEvents;
     try {
       logEvents = projectManager.getProjectEventLogs(project, num, skip);
     } catch (ProjectManagerException e) {
@@ -340,7 +333,7 @@ public class ProjectManagerServlet extends LoginAbstractAzkabanServlet {
     String[] columns = new String[] { "user", "time", "type", "message" };
     ret.put("columns", columns);
 
-    List<Object[]> eventData = new ArrayList<Object[]>();
+    List<Object[]> eventData = new ArrayList<>();
     for (ProjectLogEvent events : logEvents) {
       Object[] entry = new Object[4];
       entry[0] = events.getUser();
@@ -872,7 +865,7 @@ public class ProjectManagerServlet extends LoginAbstractAzkabanServlet {
   }
 
   private void ajaxFetchFlow(Project project, HashMap<String, Object> ret,
-      HttpServletRequest req, HttpServletResponse resp) throws ServletException {
+      HttpServletRequest req) throws ServletException {
     String flowId = getParam(req, "flow");
     Flow flow = project.getFlow(flowId);