azkaban-aplcache

check if project is removed while uploading (#1916) We found

8/15/2018 6:00:17 PM

Details

diff --git a/azkaban-web-server/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java b/azkaban-web-server/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java
index c52b9b3..203f6e6 100644
--- a/azkaban-web-server/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java
+++ b/azkaban-web-server/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java
@@ -1671,6 +1671,11 @@ public class ProjectManagerServlet extends LoginAbstractAzkabanServlet {
     final User user = session.getUser();
     final String projectName = (String) multipart.get("project");
     final Project project = this.projectManager.getProject(projectName);
+    if (!project.isActive()) {
+      registerError(ret, "Installation Failed. Project '" + project.getName()
+          + "' was already removed.", resp, 410);
+      return;
+    }
     logger.info(
         "Upload: reference of project " + projectName + " is " + System.identityHashCode(project));
 
diff --git a/azkaban-web-server/src/restli/java/azkaban/restli/ProjectManagerResource.java b/azkaban-web-server/src/restli/java/azkaban/restli/ProjectManagerResource.java
index f890641..5f418e1 100644
--- a/azkaban-web-server/src/restli/java/azkaban/restli/ProjectManagerResource.java
+++ b/azkaban-web-server/src/restli/java/azkaban/restli/ProjectManagerResource.java
@@ -77,6 +77,12 @@ public class ProjectManagerResource extends ResourceContextHolder {
       throw new RestLiServiceException(HttpStatus.S_400_BAD_REQUEST, errorMsg);
     }
 
+    if (!project.isActive()) {
+      final String errorMsg =
+          "Installation Failed. Project '" + projectName + "' was already removed.";
+      throw new RestLiServiceException(HttpStatus.S_410_GONE, errorMsg);
+    }
+
     if (!ResourceUtils.hasPermission(project, user, Permission.Type.WRITE)) {
       final String errorMsg =
           "User " + user.getUserId()