Repository: incubator-ranger
Updated Branches:
  refs/heads/master aceff0e8e -> 3a57aa3c3


RANGER-203: fix to update policyVersion in service on policy-create; fix for 
NPE in legacy repository retrieval API


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

Branch: refs/heads/master
Commit: 3a57aa3c324b5d3580209cdf96cd19451ee5efd5
Parents: aceff0e
Author: Madhan Neethiraj <[email protected]>
Authored: Wed Feb 25 00:49:30 2015 -0800
Committer: Madhan Neethiraj <[email protected]>
Committed: Wed Feb 25 00:49:30 2015 -0800

----------------------------------------------------------------------
 .../org/apache/ranger/biz/ServiceDBStore.java   |  1 +
 .../org/apache/ranger/common/ServiceUtil.java   | 39 ++++++++++++++------
 .../java/org/apache/ranger/rest/AssetREST.java  |  8 +++-
 3 files changed, 34 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3a57aa3c/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java 
b/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
index 40925c0..292a9b9 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
@@ -600,6 +600,7 @@ public class ServiceDBStore implements ServiceStore {
                createNewResourcesForPolicy(policy, xCreatedPolicy, resources);
                createNewPolicyItemsForPolicy(policy, xCreatedPolicy, 
policyItems, xServiceDef);
                
+               handlePolicyUpdate(service);
                RangerPolicy createdPolicy = 
policyService.getPopulatedViewObject(xCreatedPolicy);
                dataHistService.createObjectDataHistory(createdPolicy, 
RangerDataHistService.ACTION_CREATE);
                

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3a57aa3c/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 bfe0a43..d26f4c5 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
@@ -27,6 +27,8 @@ import java.util.Map;
 import java.util.Map.Entry;
 
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
 import org.apache.ranger.db.RangerDaoManager;
 import org.apache.ranger.entity.XXGroup;
 import org.apache.ranger.entity.XXUser;
@@ -45,7 +47,8 @@ import org.springframework.stereotype.Component;
 
 @Component
 public class ServiceUtil {
-       
+       static final Logger LOG = Logger.getLogger(ServiceUtil.class);
+
        static Map<String, Integer> mapServiceTypeToAssetType = new 
HashMap<String, Integer>();
        static Map<String, Integer> mapAccessTypeToPermType   = new 
HashMap<String, Integer>();
        
@@ -119,15 +122,21 @@ public class ServiceUtil {
                        return null;
                }
 
-               VXAsset ret = new VXAsset();
+               VXAsset ret = null;
 
-               rangerObjectToDataObject(service, ret);
-
-               ret.setAssetType(toAssetType(service.getType()));
-               ret.setName(service.getName());
-               ret.setDescription(service.getDescription());
-               ret.setActiveStatus(service.getIsEnabled() ? 
RangerCommonEnums.STATUS_ENABLED : RangerCommonEnums.STATUS_DISABLED);
-               ret.setConfig(jsonUtil.readMapToString(service.getConfigs()));
+               Integer assetType = toAssetType(service.getType());
+               
+               if(assetType != null) {
+                       ret = new VXAsset();
+       
+                       rangerObjectToDataObject(service, ret);
+       
+                       ret.setAssetType(toAssetType(service.getType()));
+                       ret.setName(service.getName());
+                       ret.setDescription(service.getDescription());
+                       ret.setActiveStatus(service.getIsEnabled() ? 
RangerCommonEnums.STATUS_ENABLED : RangerCommonEnums.STATUS_DISABLED);
+                       
ret.setConfig(jsonUtil.readMapToString(service.getConfigs()));
+               }
 
                return ret;
        }
@@ -188,6 +197,8 @@ public class ServiceUtil {
                        List<RangerPolicyItemAccess> accessList = new 
ArrayList<RangerPolicyItemAccess>();
                        String                       ipAddress  = null;
 
+                       RangerPolicy.RangerPolicyItem policyItem = new 
RangerPolicy.RangerPolicyItem();
+
                        for(VXPermMap permMap : entry.getValue()) {
                                if(permMap.getPermFor() == 
AppConstants.XA_PERM_FOR_USER) {
                                        String userName = getUserName(permMap);
@@ -203,13 +214,17 @@ public class ServiceUtil {
                                        }                                       
                                } 
 
-                               accessList.add(new 
RangerPolicyItemAccess(toAccessType(permMap.getPermType())));
+                               String accessType = 
toAccessType(permMap.getPermType());
+                               
+                               if(StringUtils.equalsIgnoreCase(accessType, 
"Admin")) {
+                                       
policyItem.setDelegateAdmin(Boolean.TRUE);
+                               } else {
+                                       accessList.add(new 
RangerPolicyItemAccess(accessType));
+                               }
 
                                ipAddress = permMap.getIpAddress();
                        }
                        
-                       RangerPolicy.RangerPolicyItem policyItem = new 
RangerPolicy.RangerPolicyItem();
-
                        policyItem.setUsers(userList);
                        policyItem.setGroups(groupList);
                        policyItem.setAccesses(accessList);

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3a57aa3c/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java 
b/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java
index 4fd4cc8..753a3bf 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java
@@ -239,10 +239,14 @@ public class AssetREST {
                List<RangerService> services = serviceREST.getServices(request);
 
                if(services != null) {
-                       List<VXAsset> assets = new 
ArrayList<VXAsset>(services.size());
+                       List<VXAsset> assets = new ArrayList<VXAsset>();
 
                        for(RangerService service : services) {
-                               assets.add(serviceUtil.toVXAsset(service));
+                               VXAsset asset = serviceUtil.toVXAsset(service);
+                               
+                               if(asset != null) {
+                                       assets.add(asset);
+                               }
                        }
 
                        ret.setVXAssets(assets);

Reply via email to