Details
diff --git a/azkaban-common/src/main/java/azkaban/project/JdbcProjectLoader.java b/azkaban-common/src/main/java/azkaban/project/JdbcProjectLoader.java
index 2102b43..12b72dd 100644
--- a/azkaban-common/src/main/java/azkaban/project/JdbcProjectLoader.java
+++ b/azkaban-common/src/main/java/azkaban/project/JdbcProjectLoader.java
@@ -141,7 +141,7 @@ public class JdbcProjectLoader extends AbstractJdbcLoader implements
runner.query(connection, ProjectResultHandler.SELECT_PROJECT_BY_ID,
handler, id);
if (projects.isEmpty()) {
- throw new ProjectManagerException("No active project with id " + id
+ throw new ProjectManagerException("No project with id " + id
+ " exists in db.");
}
@@ -201,7 +201,7 @@ public class JdbcProjectLoader extends AbstractJdbcLoader implements
ProjectResultHandler.SELECT_PROJECT_BY_NAME, handler, name);
if (projects.isEmpty()) {
throw new ProjectManagerException(
- "No active project with name " + name + " exists in db.");
+ "No project with name " + name + " exists in db.");
}
project = projects.get(0);
diff --git a/azkaban-common/src/main/java/azkaban/project/ProjectManager.java b/azkaban-common/src/main/java/azkaban/project/ProjectManager.java
index f2647ce..0f09b9c 100644
--- a/azkaban-common/src/main/java/azkaban/project/ProjectManager.java
+++ b/azkaban-common/src/main/java/azkaban/project/ProjectManager.java
@@ -229,8 +229,7 @@ public class ProjectManager {
try {
fetchedProject = projectLoader.fetchProjectByName(name);
} catch (ProjectManagerException e) {
- throw new RuntimeException(
- "Could not load project from store.", e);
+ logger.error("Could not load project from store.", e);
}
}
return fetchedProject;
@@ -251,8 +250,7 @@ public class ProjectManager {
try {
fetchedProject = projectLoader.fetchProjectById(id);
} catch (ProjectManagerException e) {
- throw new RuntimeException(
- "Could not load project from store.", e);
+ logger.error("Could not load project from store.", e);
}
}
return fetchedProject;
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 991f94a..dc0ef87 100644
--- a/azkaban-webserver/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java
+++ b/azkaban-webserver/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java
@@ -530,38 +530,43 @@ public class ProjectManagerServlet extends LoginAbstractAzkabanServlet {
User user = session.getUser();
String projectName = getParam(req, "project");
HashMap<String, Object> ret = new HashMap<String, Object>();
- boolean valid = true;
+ boolean isOperationSuccessful = true;
if (projectManager.isActiveProject(projectName)) {
ret.put("error", "Project " + projectName
+ " should be deleted before purging");
- valid = false;
+ isOperationSuccessful = false;
}
try {
Project project = null;
// project is already deleted
- if (valid) {
+ if (isOperationSuccessful) {
project = projectManager.getProject(projectName);
- // only eligible users can purge a project
- if (project == null
- || !hasPermission(project, user, Type.ADMIN)) {
- ret.put("error", "Cannot purge. User '" + user.getUserId()
- + "' is not an ADMIN.");
- valid = false;
+ if (project == null) {
+ ret.put("error", "no project with name : " + projectName);
+ isOperationSuccessful = false;
}
}
- if (valid) {
+ // only eligible users can purge a project
+ if (isOperationSuccessful
+ && !hasPermission(project, user, Type.ADMIN)) {
+ ret.put("error", "Cannot purge. User '" + user.getUserId()
+ + "' is not an ADMIN.");
+ isOperationSuccessful = false;
+ }
+
+ if (isOperationSuccessful) {
projectManager.purgeProject(project, user);
}
} catch (Exception e) {
ret.put("error", e.getMessage());
- valid = false;
+ isOperationSuccessful = false;
}
- ret.put("success", valid);
+ ret.put("success", isOperationSuccessful);
this.writeJSON(resp, ret);
}