Repository: incubator-ranger Updated Branches: refs/heads/tag-policy 303f7b702 -> 5876e2272
RANGER-595: updated tag-db-store to: 1) persist resource_signature 2) increment tagVersion when a service-resource is updatede Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/5876e227 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/5876e227 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/5876e227 Branch: refs/heads/tag-policy Commit: 5876e22723c3ba82c405efbb29d97fae28e189aa Parents: 303f7b7 Author: Madhan Neethiraj <[email protected]> Authored: Fri Aug 28 16:55:48 2015 -0700 Committer: Madhan Neethiraj <[email protected]> Committed: Fri Aug 28 16:59:33 2015 -0700 ---------------------------------------------------------------------- .../store/RangerServiceResourceSignature.java | 4 +--- .../apache/ranger/db/XXServiceResourceDao.java | 20 ++++++++++++++++++++ .../java/org/apache/ranger/db/XXTagDao.java | 19 +++++++++++++++++++ .../apache/ranger/db/XXTagResourceMapDao.java | 20 -------------------- .../java/org/apache/ranger/rest/TagREST.java | 4 ---- .../service/RangerServiceResourceService.java | 9 +++++++++ .../RangerServiceResourceServiceBase.java | 2 ++ .../service/RangerTagResourceMapService.java | 6 +++--- .../apache/ranger/service/RangerTagService.java | 11 +++++++++++ .../resources/META-INF/jpa_named_queries.xml | 18 ++++++++++++------ 10 files changed, 77 insertions(+), 36 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/5876e227/agents-common/src/main/java/org/apache/ranger/plugin/store/RangerServiceResourceSignature.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/RangerServiceResourceSignature.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/RangerServiceResourceSignature.java index 3e32a36..1affec5 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/store/RangerServiceResourceSignature.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/RangerServiceResourceSignature.java @@ -28,12 +28,10 @@ import java.util.*; public class RangerServiceResourceSignature { private final String _string; private final String _hash; - private final RangerServiceResource serviceResource; public RangerServiceResourceSignature(RangerServiceResource serviceResource) { - this.serviceResource = serviceResource; _string = ServiceResourceSpecSerializer.toString(serviceResource); - _hash = DigestUtils.md5Hex(_string); + _hash = DigestUtils.md5Hex(_string); } String asString() { http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/5876e227/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceDao.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceDao.java index 63cdc6e..7e29e36 100644 --- a/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceDao.java +++ b/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceDao.java @@ -20,6 +20,7 @@ package org.apache.ranger.db; import java.util.ArrayList; +import java.util.Date; import java.util.List; import javax.persistence.NoResultException; @@ -82,4 +83,23 @@ public class XXServiceResourceDao extends BaseDao<XXServiceResource> { return new ArrayList<XXServiceResource>(); } } + + public void updateServiceForServiceResourceUpdate(Long resourceId, Date updateTime) { + if (resourceId == null) { + return; + } + + if(updateTime == null) { + updateTime = new Date(); + } + + try { + getEntityManager().createNamedQuery("XXServiceResource.updateTagVersionInService", tClass) + .setParameter("resourceId", resourceId) + .setParameter("tagUpdateTime", updateTime) + .executeUpdate(); + } catch (NoResultException e) { + return; + } + } } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/5876e227/security-admin/src/main/java/org/apache/ranger/db/XXTagDao.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXTagDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXTagDao.java index 667238f..e5b5bb2 100644 --- a/security-admin/src/main/java/org/apache/ranger/db/XXTagDao.java +++ b/security-admin/src/main/java/org/apache/ranger/db/XXTagDao.java @@ -124,4 +124,23 @@ public class XXTagDao extends BaseDao<XXTag> { return new ArrayList<XXTag>(); } } + + public void updateServiceForTagUpdate(Long tagId, Date updateTime) { + if (tagId == null) { + return; + } + + if(updateTime == null) { + updateTime = new Date(); + } + + try { + getEntityManager().createNamedQuery("XXTag.updateTagVersionInService", tClass) + .setParameter("tagId", tagId) + .setParameter("tagUpdateTime", updateTime) + .executeUpdate(); + } catch (NoResultException e) { + return; + } + } } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/5876e227/security-admin/src/main/java/org/apache/ranger/db/XXTagResourceMapDao.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXTagResourceMapDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXTagResourceMapDao.java index 1db0cef..75d04ae 100644 --- a/security-admin/src/main/java/org/apache/ranger/db/XXTagResourceMapDao.java +++ b/security-admin/src/main/java/org/apache/ranger/db/XXTagResourceMapDao.java @@ -20,7 +20,6 @@ package org.apache.ranger.db; import java.util.ArrayList; -import java.util.Date; import java.util.List; import javax.persistence.NoResultException; @@ -120,23 +119,4 @@ public class XXTagResourceMapDao extends BaseDao<XXTagResourceMap> { return new ArrayList<XXTagResourceMap>(); } } - - public void updateServiceForTagUpdate(Long tagId, Date updateTime) { - if (tagId == null) { - return; - } - - if(updateTime == null) { - updateTime = new Date(); - } - - try { - getEntityManager().createNamedQuery("XXTagResourceMap.updateTagVersionInService", tClass) - .setParameter("tagId", tagId) - .setParameter("tagUpdateTime", updateTime) - .executeUpdate(); - } catch (NoResultException e) { - return; - } - } } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/5876e227/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java b/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java index 0b0d4ca..b06f5cc 100644 --- a/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java +++ b/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java @@ -87,8 +87,6 @@ public class TagREST { RangerTagDef ret; try { - //RangerTagDefValidator validator = validatorFactory.getTagDefValidator(tagStore); - //validator.validate(tagDef, Action.CREATE); ret = tagStore.createTagDef(tagDef); } catch(Exception excp) { LOG.error("createTagDef(" + tagDef + ") failed", excp); @@ -143,8 +141,6 @@ public class TagREST { } try { - //RangerTagDefValidator validator = validatorFactory.getTagDefValidator(tagStore); - //validator.validate(guid, Action.DELETE); tagStore.deleteTagDefById(id); } catch(Exception excp) { LOG.error("deleteTagDef(" + id + ") failed", excp); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/5876e227/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceService.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceService.java index 3bbd344..a81b981 100644 --- a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceService.java +++ b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceService.java @@ -49,6 +49,15 @@ public class RangerServiceResourceService extends RangerServiceResourceServiceBa protected void validateForUpdate(RangerServiceResource vObj, XXServiceResource entityObj) { } + + @Override + public RangerServiceResource postUpdate(XXServiceResource resource) { + RangerServiceResource ret = super.postUpdate(resource); + + daoMgr.getXXServiceResource().updateServiceForServiceResourceUpdate(resource.getId(), resource.getUpdateTime()); + + return ret; + } public RangerServiceResource getPopulatedViewObject(XXServiceResource xObj) { return populateViewBean(xObj); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/5876e227/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceServiceBase.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceServiceBase.java b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceServiceBase.java index f6a1dca..1510ffa 100644 --- a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceServiceBase.java +++ b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceServiceBase.java @@ -51,6 +51,7 @@ public abstract class RangerServiceResourceServiceBase<T extends XXServiceResour xObj.setGuid(guid); xObj.setVersion(vObj.getVersion()); xObj.setIsEnabled(vObj.getIsEnabled()); + xObj.setResourceSignature(vObj.getResourceSignature()); XXService xService = daoMgr.getXXService().findByName(vObj.getServiceName()); if (xService == null) { @@ -68,6 +69,7 @@ public abstract class RangerServiceResourceServiceBase<T extends XXServiceResour vObj.setGuid(xObj.getGuid()); vObj.setVersion(xObj.getVersion()); vObj.setIsEnabled(xObj.getIsEnabled()); + vObj.setResourceSignature(xObj.getResourceSignature()); XXService xService = daoMgr.getXXService().getById(xObj.getServiceId()); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/5876e227/security-admin/src/main/java/org/apache/ranger/service/RangerTagResourceMapService.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerTagResourceMapService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerTagResourceMapService.java index 503df82..6894e4e 100644 --- a/security-admin/src/main/java/org/apache/ranger/service/RangerTagResourceMapService.java +++ b/security-admin/src/main/java/org/apache/ranger/service/RangerTagResourceMapService.java @@ -54,7 +54,7 @@ public class RangerTagResourceMapService extends RangerTagResourceMapServiceBase public RangerTagResourceMap postCreate(XXTagResourceMap tagResMap) { RangerTagResourceMap ret = super.postCreate(tagResMap); - daoMgr.getXXTagResourceMap().updateServiceForTagUpdate(tagResMap.getTagId(), tagResMap.getUpdateTime()); + daoMgr.getXXTag().updateServiceForTagUpdate(tagResMap.getTagId(), tagResMap.getUpdateTime()); return ret; } @@ -63,7 +63,7 @@ public class RangerTagResourceMapService extends RangerTagResourceMapServiceBase public RangerTagResourceMap postUpdate(XXTagResourceMap tagResMap) { RangerTagResourceMap ret = super.postUpdate(tagResMap); - daoMgr.getXXTagResourceMap().updateServiceForTagUpdate(tagResMap.getTagId(), tagResMap.getUpdateTime()); + daoMgr.getXXTag().updateServiceForTagUpdate(tagResMap.getTagId(), tagResMap.getUpdateTime()); return ret; } @@ -73,7 +73,7 @@ public class RangerTagResourceMapService extends RangerTagResourceMapServiceBase XXTagResourceMap tagResMap = super.preDelete(id); if (tagResMap != null) { - daoMgr.getXXTagResourceMap().updateServiceForTagUpdate(tagResMap.getTagId(), tagResMap.getUpdateTime()); + daoMgr.getXXTag().updateServiceForTagUpdate(tagResMap.getTagId(), tagResMap.getUpdateTime()); } return tagResMap; http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/5876e227/security-admin/src/main/java/org/apache/ranger/service/RangerTagService.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerTagService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerTagService.java index 1251454..3d7ea24 100644 --- a/security-admin/src/main/java/org/apache/ranger/service/RangerTagService.java +++ b/security-admin/src/main/java/org/apache/ranger/service/RangerTagService.java @@ -6,7 +6,9 @@ import java.util.List; import org.apache.commons.collections.CollectionUtils; import org.apache.ranger.common.SearchField; import org.apache.ranger.entity.XXTag; +import org.apache.ranger.entity.XXTagDef; import org.apache.ranger.plugin.model.RangerTag; +import org.apache.ranger.plugin.model.RangerTagDef; import org.apache.ranger.plugin.util.SearchFilter; import org.springframework.stereotype.Service; @@ -29,6 +31,15 @@ public class RangerTagService extends RangerTagServiceBase<XXTag, RangerTag> { } + @Override + public RangerTag postUpdate(XXTag tag) { + RangerTag ret = super.postUpdate(tag); + + daoMgr.getXXTag().updateServiceForTagUpdate(tag.getId(), tag.getUpdateTime()); + + return ret; + } + public RangerTag getPopulatedViewObject(XXTag xObj) { return populateViewBean(xObj); } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/5876e227/security-admin/src/main/resources/META-INF/jpa_named_queries.xml ---------------------------------------------------------------------- diff --git a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml index b8fd003..a05e0bd 100644 --- a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml +++ b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml @@ -576,12 +576,6 @@ where obj.resourceId = res.id and res.serviceId = :serviceId order by obj.resourceId</query> </named-query> - - <named-query name="XXTagResourceMap.updateTagVersionInService"> - <query>update XXService obj set obj.tagVersion = obj.tagVersion + 1, obj.tagUpdateTime = :tagUpdateTime - where obj.id in (select res.serviceId from XXServiceResource res, XXTagResourceMap tagRes, XXTag tag - where res.id = tagRes.resourceId and tagRes.tagId = tag.id and tag.id = :tagId)</query> - </named-query> <named-query name="XXTagDef.findByGuid"> <query>select obj from XXTagDef obj where obj.guid = :guid</query> @@ -632,6 +626,12 @@ <query>select obj from XXTag obj where obj.id in (select tagRes.tagId from XXTagResourceMap tagRes, XXServiceResource resource where tagRes.resourceId = resource.id and resource.serviceId = :serviceId)</query> </named-query> + + <named-query name="XXTag.updateTagVersionInService"> + <query>update XXService obj set obj.tagVersion = obj.tagVersion + 1, obj.tagUpdateTime = :tagUpdateTime + where obj.id in (select res.serviceId from XXServiceResource res, XXTagResourceMap tagRes, XXTag tag + where res.id = tagRes.resourceId and tagRes.tagId = tag.id and tag.id = :tagId)</query> + </named-query> <named-query name="XXTagAttribute.findByTagId"> <query>select obj from XXTagAttribute obj where obj.tagId = :tagId</query> @@ -655,6 +655,12 @@ <query>select obj from XXServiceResource obj where obj.serviceId = :serviceId and obj.resourceSignature = :resourceSignature</query> </named-query> + <named-query name="XXServiceResource.updateTagVersionInService"> + <query>update XXService obj set obj.tagVersion = obj.tagVersion + 1, obj.tagUpdateTime = :tagUpdateTime + where obj.id in (select res.serviceId from XXServiceResource res, XXTagResourceMap tagRes + where res.id = :resourceId and res.id = tagRes.resourceId)</query> + </named-query> + <!-- End <== JPA Queries for Tag Based Policies --> </entity-mappings>
