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/04/16 04:20:51 UTC

incubator-ranger git commit: RANGER-277: Ranger Public API fixes for backward compatibility

Repository: incubator-ranger
Updated Branches:
  refs/heads/master 84a03b159 -> 258ddbf85


RANGER-277: Ranger Public API fixes for backward compatibility


Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/258ddbf8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/258ddbf8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/258ddbf8

Branch: refs/heads/master
Commit: 258ddbf85d7fa76da84334de9e54702f8924c8dc
Parents: 84a03b1
Author: Madhan Neethiraj <ma...@apache.org>
Authored: Wed Apr 15 18:53:37 2015 -0700
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Wed Apr 15 18:54:11 2015 -0700

----------------------------------------------------------------------
 .../org/apache/ranger/common/ServiceUtil.java   | 80 +++++++++++++-------
 1 file changed, 53 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/258ddbf8/security-admin/src/main/java/org/apache/ranger/common/ServiceUtil.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/common/ServiceUtil.java b/security-admin/src/main/java/org/apache/ranger/common/ServiceUtil.java
index e13dea2..e883e1d 100644
--- a/security-admin/src/main/java/org/apache/ranger/common/ServiceUtil.java
+++ b/security-admin/src/main/java/org/apache/ranger/common/ServiceUtil.java
@@ -44,7 +44,6 @@ import org.apache.ranger.entity.XXUser;
 import org.apache.ranger.plugin.model.RangerBaseModelObject;
 import org.apache.ranger.plugin.model.RangerPolicy;
 import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyItemAccess;
-import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyResource;
 import org.apache.ranger.plugin.model.RangerService;
 import org.apache.ranger.plugin.store.EmbeddedServiceDefsUtil;
 import org.apache.ranger.plugin.util.GrantRevokeRequest;
@@ -489,23 +488,55 @@ public class ServiceUtil {
 		return ret;
 	}	
 
+	private void updateResourceName(VXPolicy policy) {
+		if(policy == null) {
+			return;
+		}
+
+		String resourceName = getResourceName(toAssetType(policy.getRepositoryType()),
+											  policy.getResourceName(),
+											  policy.getTables(),
+											  policy.getColumnFamilies(),
+											  policy.getColumns(),
+											  policy.getDatabases(),
+											  policy.getTopologies(),
+											  policy.getServices());
+
+		policy.setResourceName(resourceName);
+	}
+
 	private void updateResourceName(VXResource resource) {
 		if(resource == null) {
 			return;
 		}
 
+		String resourceName = getResourceName(resource.getAssetType(),
+											  resource.getName(),
+											  resource.getTables(),
+											  resource.getColumnFamilies(),
+											  resource.getColumns(),
+											  resource.getDatabases(),
+											  resource.getTopologies(),
+											  resource.getServices());
+
+		resource.setName(resourceName);
+	}
+
+	private String getResourceName(int assetType, String paths, String tables, String columnFamilies, String columns, String databases, String topologies, String services) {
 		StringBuilder sb = new StringBuilder();
 
-		switch(resource.getAssetType()) {
+		switch(assetType) {
 			case RangerCommonEnums.ASSET_HDFS:
-				sb.append(emptyIfNull(resource.getName()));
+				paths = emptyIfNull(paths);
+
+				sb.append(paths);
 			break;
 
 			case RangerCommonEnums.ASSET_HBASE:
 			{
-				String tables         = emptyIfNull(resource.getTables());
-				String columnFamilies = emptyIfNull(resource.getColumnFamilies());
-				String columns        = emptyIfNull(resource.getColumns());
+				tables         = emptyIfNull(tables);
+				columnFamilies = emptyIfNull(columnFamilies);
+				columns        = emptyIfNull(columns);
 
 				for(String column : columns.split(",")) {
 					for(String columnFamily : columnFamilies.split(",")) {
@@ -523,9 +554,9 @@ public class ServiceUtil {
 
 			case RangerCommonEnums.ASSET_HIVE:
 			{
-				String databases = emptyIfNull(resource.getDatabases());
-				String tables    = emptyIfNull(resource.getTables());
-				String columns   = emptyIfNull(resource.getColumns());
+				databases = emptyIfNull(databases);
+				tables    = emptyIfNull(tables);
+				columns   = emptyIfNull(columns);
 
 				for(String column : columns.split(",")) {
 					for(String table : tables.split(",")) {
@@ -534,7 +565,7 @@ public class ServiceUtil {
 								sb.append(",");
 							}
 
-							sb.append("/").append(database).append(table).append("/").append("/").append(column);
+							sb.append("/").append(database).append("/").append(table).append("/").append(column);
 						}
 					}
 				}
@@ -543,8 +574,8 @@ public class ServiceUtil {
 
 			case RangerCommonEnums.ASSET_KNOX:
 			{
-				String topologies = emptyIfNull(resource.getTopologies());
-				String services   = emptyIfNull(resource.getServices());
+				topologies = emptyIfNull(topologies);
+				services   = emptyIfNull(services);
 
 				for(String service : services.split(",")) {
 					for(String topology : topologies.split(",")) {
@@ -552,20 +583,20 @@ public class ServiceUtil {
 							sb.append(",");
 						}
 
-						sb.append("/").append(topology).append(service);
+						sb.append("/").append(topology).append("/").append(service);
 					}
 				}
 			}
 			break;
 
 			case RangerCommonEnums.ASSET_STORM:
-				sb.append(emptyIfNull(resource.getTopologies()));
+				topologies = emptyIfNull(topologies);
+
+				sb.append(topologies);
 			break;
 		}
 
-		if(sb.length() > 0) {
-			resource.setName(sb.toString());
-		}
+		return sb.toString();
 	}
 
 	private String emptyIfNull(String str) {
@@ -769,6 +800,7 @@ public class ServiceUtil {
 				ret.setServices(resString);
 			}
 		}
+		updateResourceName(ret);
 			
 		List<VXPermMap> vXPermMapList = getVXPermMapList(policy);
 			
@@ -916,12 +948,8 @@ public class ServiceUtil {
 				}
 				ipAddress = permMap.getIpAddress();
 			}
-			if (!userList.isEmpty()) {
-				vXPermObj.setUserList(userList);
-			}
-			if (!groupList.isEmpty()) {
-				vXPermObj.setGroupList(groupList);
-			}
+			vXPermObj.setUserList(userList);
+			vXPermObj.setGroupList(groupList);
 			vXPermObj.setPermList(permList);
 			vXPermObj.setIpAddress(ipAddress);
 
@@ -1100,8 +1128,6 @@ public class ServiceUtil {
 		RangerService service       = null;
 		List<VXPolicy> vXPolicyList = new ArrayList<VXPolicy>();
 
-		VXPolicyList  vXPolicyListObj  = new VXPolicyList();
-		
 		for ( RangerPolicy policy : rangerPolicyList) {
 			try {
 				service = svcStore.getServiceByName(policy.getService());
@@ -1117,8 +1143,8 @@ public class ServiceUtil {
 			
 			vXPolicyList.add(vXPolicy);
 		}
-		
-		vXPolicyListObj.setVXPolicies(vXPolicyList);
+
+		VXPolicyList vXPolicyListObj = new VXPolicyList(vXPolicyList);
 		
 		return vXPolicyListObj;