You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2015/08/29 03:07:35 UTC

incubator-ranger git commit: RANGER-595: updated tag-db-store to: 1) persist resource_signature 2) increment tagVersion when a service-resource is updatede

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 <ma...@apache.org>
Authored: Fri Aug 28 16:55:48 2015 -0700
Committer: Madhan Neethiraj <ma...@apache.org>
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>