Repository: oozie Updated Branches: refs/heads/branch-4.1 c1a277dcc -> 9164c0163
OOZIE-1957 Coord update command override group when oozie.service.AuthorizationService.default.group.as.acl is set and group/acl is not configured in job property Project: http://git-wip-us.apache.org/repos/asf/oozie/repo Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/9164c016 Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/9164c016 Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/9164c016 Branch: refs/heads/branch-4.1 Commit: 9164c01636818614eb691035523c9cbf4b550fca Parents: c1a277d Author: Purshotam Shah <[email protected]> Authored: Tue Sep 9 13:56:14 2014 -0700 Committer: Purshotam Shah <[email protected]> Committed: Tue Sep 9 13:56:14 2014 -0700 ---------------------------------------------------------------------- .../oozie/command/coord/CoordUpdateXCommand.java | 2 +- .../java/org/apache/oozie/servlet/BaseJobServlet.java | 14 ++++++++++++-- .../java/org/apache/oozie/servlet/V0JobServlet.java | 4 ++-- .../java/org/apache/oozie/servlet/V1JobServlet.java | 4 ++-- .../java/org/apache/oozie/servlet/V2JobServlet.java | 6 ++---- release-log.txt | 1 + 6 files changed, 20 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/oozie/blob/9164c016/core/src/main/java/org/apache/oozie/command/coord/CoordUpdateXCommand.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/command/coord/CoordUpdateXCommand.java b/core/src/main/java/org/apache/oozie/command/coord/CoordUpdateXCommand.java index d6e47da..ca5be3d 100644 --- a/core/src/main/java/org/apache/oozie/command/coord/CoordUpdateXCommand.java +++ b/core/src/main/java/org/apache/oozie/command/coord/CoordUpdateXCommand.java @@ -117,7 +117,7 @@ public class CoordUpdateXCommand extends CoordSubmitXCommand { LogUtils.setLogInfo(oldCoordJob, logInfo); if (!isConfChange) { try { - conf = new XConfiguration(new StringReader(coordJob.getConf())); + conf = new XConfiguration(new StringReader(oldCoordJob.getConf())); } catch (Exception e) { throw new CommandException(ErrorCode.E1023, e.getMessage(), e); http://git-wip-us.apache.org/repos/asf/oozie/blob/9164c016/core/src/main/java/org/apache/oozie/servlet/BaseJobServlet.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/servlet/BaseJobServlet.java b/core/src/main/java/org/apache/oozie/servlet/BaseJobServlet.java index 6948c67..29394a8 100644 --- a/core/src/main/java/org/apache/oozie/servlet/BaseJobServlet.java +++ b/core/src/main/java/org/apache/oozie/servlet/BaseJobServlet.java @@ -162,8 +162,17 @@ public abstract class BaseJobServlet extends JsonRestServlet { } else if (action.equals(RestConstants.JOB_COORD_UPDATE)) { validateContentType(request, RestConstants.XML_CONTENT_TYPE); + Configuration conf = new XConfiguration(request.getInputStream()); stopCron(); - JSONObject json = updateJob(request, response); + String requestUser = getUser(request); + if (!requestUser.equals(UNDEF)) { + conf.set(OozieClient.USER_NAME, requestUser); + } + if (conf.get(OozieClient.COORDINATOR_APP_PATH) != null) { + BaseJobServlet.checkAuthorizationForApp(conf); + JobUtils.normalizeAppPath(conf.get(OozieClient.USER_NAME), conf.get(OozieClient.GROUP_NAME), conf); + } + JSONObject json = updateJob(request, response, conf); startCron(); sendJsonResponse(response, HttpServletResponse.SC_OK, json); } @@ -445,11 +454,12 @@ public abstract class BaseJobServlet extends JsonRestServlet { * * @param request the request * @param response the response + * @param Configuration conf * @return the JSON object * @throws XServletException the x servlet exception * @throws IOException Signals that an I/O exception has occurred. */ - abstract JSONObject updateJob(HttpServletRequest request, HttpServletResponse response) + abstract JSONObject updateJob(HttpServletRequest request, HttpServletResponse response, Configuration conf) throws XServletException, IOException; } http://git-wip-us.apache.org/repos/asf/oozie/blob/9164c016/core/src/main/java/org/apache/oozie/servlet/V0JobServlet.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/servlet/V0JobServlet.java b/core/src/main/java/org/apache/oozie/servlet/V0JobServlet.java index 3bba16f..7af502a 100644 --- a/core/src/main/java/org/apache/oozie/servlet/V0JobServlet.java +++ b/core/src/main/java/org/apache/oozie/servlet/V0JobServlet.java @@ -216,8 +216,8 @@ public class V0JobServlet extends BaseJobServlet { } @Override - protected JSONObject updateJob(HttpServletRequest request, HttpServletResponse response) throws XServletException, - IOException { + protected JSONObject updateJob(HttpServletRequest request, HttpServletResponse response, Configuration conf) + throws XServletException, IOException { throw new XServletException(HttpServletResponse.SC_BAD_REQUEST, ErrorCode.E0302, "Not supported in v0"); } http://git-wip-us.apache.org/repos/asf/oozie/blob/9164c016/core/src/main/java/org/apache/oozie/servlet/V1JobServlet.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/servlet/V1JobServlet.java b/core/src/main/java/org/apache/oozie/servlet/V1JobServlet.java index 855fabc..20a6e1f 100644 --- a/core/src/main/java/org/apache/oozie/servlet/V1JobServlet.java +++ b/core/src/main/java/org/apache/oozie/servlet/V1JobServlet.java @@ -1084,8 +1084,8 @@ public class V1JobServlet extends BaseJobServlet { * not supported for v1 */ @Override - protected JSONObject updateJob(HttpServletRequest request, HttpServletResponse response) throws XServletException, - IOException { + protected JSONObject updateJob(HttpServletRequest request, HttpServletResponse response, Configuration conf) + throws XServletException, IOException { throw new XServletException(HttpServletResponse.SC_BAD_REQUEST, ErrorCode.E0302, "Not supported in v1"); } } http://git-wip-us.apache.org/repos/asf/oozie/blob/9164c016/core/src/main/java/org/apache/oozie/servlet/V2JobServlet.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/servlet/V2JobServlet.java b/core/src/main/java/org/apache/oozie/servlet/V2JobServlet.java index 371cbb4..9dc5e0c 100644 --- a/core/src/main/java/org/apache/oozie/servlet/V2JobServlet.java +++ b/core/src/main/java/org/apache/oozie/servlet/V2JobServlet.java @@ -41,7 +41,6 @@ import org.apache.oozie.command.CommandException; import org.apache.oozie.service.CoordinatorEngineService; import org.apache.oozie.service.DagEngineService; import org.apache.oozie.service.Services; -import org.apache.oozie.util.XConfiguration; import org.json.simple.JSONObject; @SuppressWarnings("serial") @@ -102,13 +101,12 @@ public class V2JobServlet extends V1JobServlet { */ @SuppressWarnings("unchecked") @Override - protected JSONObject updateJob(HttpServletRequest request, HttpServletResponse response) throws XServletException, - IOException { + protected JSONObject updateJob(HttpServletRequest request, HttpServletResponse response, Configuration conf) + throws XServletException, IOException { CoordinatorEngine coordEngine = Services.get().get(CoordinatorEngineService.class) .getCoordinatorEngine(getUser(request)); JSONObject json = new JSONObject(); try { - Configuration conf= new XConfiguration(request.getInputStream()); String jobId = getResourceName(request); boolean dryrun = StringUtils.isEmpty(request.getParameter(RestConstants.JOB_ACTION_DRYRUN)) ? false : Boolean.parseBoolean(request.getParameter(RestConstants.JOB_ACTION_DRYRUN)); http://git-wip-us.apache.org/repos/asf/oozie/blob/9164c016/release-log.txt ---------------------------------------------------------------------- diff --git a/release-log.txt b/release-log.txt index 2e14e5c..a8d5da2 100644 --- a/release-log.txt +++ b/release-log.txt @@ -1,5 +1,6 @@ -- Oozie 4.1.0 release (4.1 - unreleased) +OOZIE-1957 Coord update command override group when oozie.service.AuthorizationService.default.group.as.acl is set and group/acl is not configured in job property (puru) OOZIE-1989 NPE during a rerun with forks (rkanter) OOZIE-1923 ZKLocksService locks are not re-entrant like MemoryLocks (puru) OOZIE-1945 NPE in JaveActionExecutor#check() (sree2k via rkanter)
