azkaban-aplcache
Changes
gradle.properties 2(+1 -1)
Details
diff --git a/azkaban-common/src/main/java/azkaban/jobtype/JobTypeManager.java b/azkaban-common/src/main/java/azkaban/jobtype/JobTypeManager.java
index f1cf351..34dfa6a 100644
--- a/azkaban-common/src/main/java/azkaban/jobtype/JobTypeManager.java
+++ b/azkaban-common/src/main/java/azkaban/jobtype/JobTypeManager.java
@@ -200,6 +200,7 @@ public class JobTypeManager {
}
pluginLoadProps = new Props(commonPluginLoadProps, pluginLoadPropsFile);
+ pluginLoadProps.put("plugin.dir", pluginDir.getAbsolutePath());
pluginLoadProps = PropsUtils.resolveProps(pluginLoadProps);
} catch (Exception e) {
logger.error("pluginLoadProps to help with debugging: " + pluginLoadProps);
@@ -207,7 +208,6 @@ public class JobTypeManager {
+ e.getMessage(), e);
}
// Add properties into the plugin set
- pluginLoadProps.put("plugin.dir", pluginDir.getAbsolutePath());
plugins.addPluginLoadProps(jobTypeName, pluginLoadProps);
if (pluginJobProps != null) {
plugins.addPluginJobProps(jobTypeName, pluginJobProps);
@@ -358,8 +358,8 @@ public class JobTypeManager {
// pluginSet.getCommonPluginLoadProps() will return null if there is no plugins directory.
// hence assigning default Props() if that's the case
pluginLoadProps = pluginSet.getCommonPluginLoadProps();
- if(pluginJobProps == null)
- pluginJobProps = new Props();
+ if(pluginLoadProps == null)
+ pluginLoadProps = new Props();
}
job =
diff --git a/azkaban-soloserver/src/package/bin/azkaban-solo-start.sh b/azkaban-soloserver/src/package/bin/azkaban-solo-start.sh
index e45c907..7c64a4e 100755
--- a/azkaban-soloserver/src/package/bin/azkaban-solo-start.sh
+++ b/azkaban-soloserver/src/package/bin/azkaban-solo-start.sh
@@ -43,7 +43,7 @@ serverpath=`pwd`
if [ -z $AZKABAN_OPTS ]; then
AZKABAN_OPTS=-Xmx3G
fi
-AZKABAN_OPTS="$AZKABAN_OPTS -server -Dcom.sun.management.jmxremote -Djava.io.tmpdir=$tmpdir -Dexecutorport=$executorport -Dserverpath=$serverpath"
+AZKABAN_OPTS="$AZKABAN_OPTS -server -Dcom.sun.management.jmxremote -Djava.io.tmpdir=$tmpdir -Dexecutorport=$executorport -Dserverpath=$serverpath -Dlog4j.log.dir=$azkaban_dir/logs"
java $AZKABAN_OPTS -cp $CLASSPATH azkaban.soloserver.AzkabanSingleServer -conf $azkaban_dir/conf $@ &
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 dc0ef87..4c8f025 100644
--- a/azkaban-webserver/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java
+++ b/azkaban-webserver/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java
@@ -43,6 +43,7 @@ import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import azkaban.executor.ExecutableFlow;
@@ -520,56 +521,57 @@ public class ProjectManagerServlet extends LoginAbstractAzkabanServlet {
}
- /**
- * validate readiness of a project and user permission and use
- * projectManager to purge the project if things looks good
- **/
- private void handlePurgeProject(HttpServletRequest req,
- HttpServletResponse resp, Session session) throws ServletException,
- IOException {
- User user = session.getUser();
- String projectName = getParam(req, "project");
- HashMap<String, Object> ret = new HashMap<String, Object>();
- boolean isOperationSuccessful = true;
-
- if (projectManager.isActiveProject(projectName)) {
- ret.put("error", "Project " + projectName
- + " should be deleted before purging");
- isOperationSuccessful = false;
- }
+ /**
+ * validate readiness of a project and user permission and use projectManager to purge the project
+ * if things looks good
+ **/
+ private void handlePurgeProject(HttpServletRequest req, HttpServletResponse resp, Session session)
+ throws ServletException, IOException {
+ User user = session.getUser();
+ HashMap<String, Object> ret = new HashMap<String, Object>();
+ boolean isOperationSuccessful = true;
- try {
- Project project = null;
+ try {
+ Project project = null;
+ String projectParam = getParam(req, "project");
- // project is already deleted
- if (isOperationSuccessful) {
- project = projectManager.getProject(projectName);
- if (project == null) {
- ret.put("error", "no project with name : " + projectName);
- isOperationSuccessful = false;
- }
- }
+ if (StringUtils.isNumeric(projectParam)) {
+ project = projectManager.getProject(Integer.parseInt(projectParam)); // get project by Id
+ } else {
+ project = projectManager.getProject(projectParam); // get project by name (name cannot start
+ // from ints)
+ }
- // 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;
- }
+ // invalid project
+ if (project == null) {
+ ret.put("error", "invalid project");
+ isOperationSuccessful = false;
+ }
- if (isOperationSuccessful) {
- projectManager.purgeProject(project, user);
- }
- } catch (Exception e) {
- ret.put("error", e.getMessage());
- isOperationSuccessful = false;
- }
+ // project is already deleted
+ if (isOperationSuccessful && projectManager.isActiveProject(project.getId())) {
+ ret.put("error", "Project " + project.getName() + " should be deleted before purging");
+ isOperationSuccessful = false;
+ }
+
+ // 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;
+ }
- ret.put("success", isOperationSuccessful);
- this.writeJSON(resp, ret);
+ if (isOperationSuccessful) {
+ projectManager.purgeProject(project, user);
+ }
+ } catch (Exception e) {
+ ret.put("error", e.getMessage());
+ isOperationSuccessful = false;
}
+ ret.put("success", isOperationSuccessful);
+ this.writeJSON(resp, ret);
+ }
+
private void handleRemoveProject(HttpServletRequest req,
HttpServletResponse resp, Session session) throws ServletException,
IOException {
gradle.properties 2(+1 -1)
diff --git a/gradle.properties b/gradle.properties
index ef3a7de..a9b4824 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,3 +1,3 @@
org.gradle.daemon=true
group=com.linkedin
-version=2.7.0
+version=3.0.0