Repository: incubator-ranger Updated Branches: refs/heads/master b05edbc8d -> 353ce61c9
RANGER-403 : Minor modifications to Public API with respect to RANGER-403 Signed-off-by: Velmurugan Periasamy <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/353ce61c Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/353ce61c Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/353ce61c Branch: refs/heads/master Commit: 353ce61c9b3a08dbf4c476f37ebb214caed3ece7 Parents: b05edbc Author: Gautam Borad <[email protected]> Authored: Wed Apr 22 15:53:16 2015 +0530 Committer: Velmurugan Periasamy <[email protected]> Committed: Thu Apr 23 05:40:51 2015 -0400 ---------------------------------------------------------------------- .../java/org/apache/ranger/rest/PublicAPIs.java | 28 ++++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/353ce61c/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java b/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java index 736e56f..34ac345 100644 --- a/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java +++ b/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java @@ -19,11 +19,13 @@ package org.apache.ranger.rest; -import org.apache.commons.collections.MapUtils; import org.apache.log4j.Logger; import org.apache.ranger.common.*; import org.apache.ranger.common.annotation.RangerAnnotationClassName; import org.apache.ranger.common.annotation.RangerAnnotationJSMgrName; +import org.apache.ranger.db.RangerDaoManager; +import org.apache.ranger.entity.XXPolicy; +import org.apache.ranger.entity.XXService; import org.apache.ranger.plugin.model.RangerPolicy; import org.apache.ranger.plugin.model.RangerService; import org.apache.ranger.plugin.util.SearchFilter; @@ -41,7 +43,6 @@ import javax.servlet.http.HttpServletRequest; import javax.ws.rs.*; import javax.ws.rs.core.Context; -import java.util.HashMap; import java.util.List; @Path("public") @@ -70,6 +71,11 @@ public class PublicAPIs { @Autowired ServiceREST serviceREST; + @Autowired + RangerDaoManager daoMgr; + + @Autowired + RESTErrorUtil restErrorUtil; @GET @Path("/api/repository/{id}") @@ -126,11 +132,17 @@ public class PublicAPIs { logger.debug("==> PublicAPIs.updateRepository(" + id + ")"); } + XXService existing = daoMgr.getXXService().getById(id); + if(existing == null) { + throw restErrorUtil.createRESTException("Repository not found for Id: " + id, MessageEnums.DATA_NOT_FOUND); + } + vXRepository.setId(id); VXAsset vXAsset = serviceUtil.publicObjecttoVXAsset(vXRepository); RangerService service = serviceUtil.toRangerService(vXAsset); + service.setVersion(existing.getVersion()); RangerService updatedService = serviceREST.updateService(service); @@ -157,12 +169,6 @@ public class PublicAPIs { logger.debug("==> PublicAPIs.deleteRepository(" + id + ")"); } - String forceStr = request.getParameter("force"); - boolean force = true; - if (!stringUtil.isEmpty(forceStr)) { - force = Boolean.parseBoolean(forceStr.trim()); - } - serviceREST.deleteService(id); if(logger.isDebugEnabled()) { @@ -285,11 +291,17 @@ public class PublicAPIs { logger.debug("==> PublicAPIs.updatePolicy(): " + vXPolicy ); } + XXPolicy existing = daoMgr.getXXPolicy().getById(id); + if(existing == null) { + throw restErrorUtil.createRESTException("Policy not found for Id: " + id, MessageEnums.DATA_NOT_FOUND); + } + vXPolicy.setId(id); RangerService service = serviceREST.getServiceByName(vXPolicy.getRepositoryName()); RangerPolicy policy = serviceUtil.toRangerPolicy(vXPolicy,service); + policy.setVersion(existing.getVersion()); RangerPolicy updatedPolicy = serviceREST.updatePolicy(policy);
