RANGER-274: tag-based-policies: updated policy-download to include 
tag-based-policies


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

Branch: refs/heads/tag-policy
Commit: 79a4f9dbd62900459959a7183fe173ffb8d95865
Parents: 49d1fdb
Author: Madhan Neethiraj <[email protected]>
Authored: Mon May 18 15:06:00 2015 -0700
Committer: Madhan Neethiraj <[email protected]>
Committed: Mon May 18 15:06:00 2015 -0700

----------------------------------------------------------------------
 .../apache/ranger/plugin/util/SearchFilter.java |   2 +
 .../ranger/plugin/util/ServicePolicies.java     | 113 ++++++++++++++++++-
 .../org/apache/ranger/biz/ServiceDBStore.java   |  24 ++++
 .../service/RangerServiceServiceBase.java       |   3 +
 4 files changed, 141 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/79a4f9db/agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java
----------------------------------------------------------------------
diff --git 
a/agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java 
b/agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java
index 17738be..ae6b7a8 100644
--- 
a/agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java
+++ 
b/agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java
@@ -36,6 +36,8 @@ public class SearchFilter {
        public static final String POLICY_ID       = "policyId";      // 
search, sort
        public static final String IS_ENABLED      = "isEnabled";     // search
        public static final String IS_RECURSIVE    = "isRecursive";   // search
+       public static final String TAG_SERVICE_NAME = "tagServiceName";  // 
search
+       public static final String TAG_SERVICE_ID  = "tagServiceId";  // search
        public static final String USER            = "user";          // search
        public static final String GROUP           = "group";         // search
        public static final String RESOURCE_PREFIX = "resource:";     // search

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/79a4f9db/agents-common/src/main/java/org/apache/ranger/plugin/util/ServicePolicies.java
----------------------------------------------------------------------
diff --git 
a/agents-common/src/main/java/org/apache/ranger/plugin/util/ServicePolicies.java
 
b/agents-common/src/main/java/org/apache/ranger/plugin/util/ServicePolicies.java
index 015c081..a1c6397 100644
--- 
a/agents-common/src/main/java/org/apache/ranger/plugin/util/ServicePolicies.java
+++ 
b/agents-common/src/main/java/org/apache/ranger/plugin/util/ServicePolicies.java
@@ -50,7 +50,7 @@ public class ServicePolicies implements java.io.Serializable {
        private Date               policyUpdateTime;
        private List<RangerPolicy> policies;
        private RangerServiceDef   serviceDef;
-
+       private TagPolicies        tagPolicies;
 
        /**
         * @return the serviceName
@@ -124,6 +124,18 @@ public class ServicePolicies implements 
java.io.Serializable {
        public void setServiceDef(RangerServiceDef serviceDef) {
                this.serviceDef = serviceDef;
        }
+       /**
+        * @return the tagPolicies
+        */
+       public ServicePolicies.TagPolicies getTagPolicies() {
+               return tagPolicies;
+       }
+       /**
+        * @param tagPolicies the tagPolicies to set
+        */
+       public void setTagPolicies(ServicePolicies.TagPolicies tagPolicies) {
+               this.tagPolicies = tagPolicies;
+       }
        
        @Override
        public String toString() {
@@ -134,6 +146,105 @@ public class ServicePolicies implements 
java.io.Serializable {
                        .add("policyUpdateTime", policyUpdateTime)
                        .add("policies", policies)
                        .add("serviceDef", serviceDef)
+                       .add("tagPolicies", tagPolicies)
                        .toString();
        }
+
+       @JsonAutoDetect(getterVisibility=Visibility.NONE, 
setterVisibility=Visibility.NONE, fieldVisibility=Visibility.ANY)
+       @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL )
+       @JsonIgnoreProperties(ignoreUnknown=true)
+       @XmlRootElement
+       @XmlAccessorType(XmlAccessType.FIELD)
+       public static class TagPolicies {
+               private String             serviceName;
+               private Long               serviceId;
+               private Long               policyVersion;
+               private Date               policyUpdateTime;
+               private List<RangerPolicy> policies;
+               private RangerServiceDef   serviceDef;
+               /**
+                * @return the serviceName
+                */
+               public String getServiceName() {
+                       return serviceName;
+               }
+               /**
+                * @param serviceName the serviceName to set
+                */
+               public void setServiceName(String serviceName) {
+                       this.serviceName = serviceName;
+               }
+               /**
+                * @return the serviceId
+                */
+               public Long getServiceId() {
+                       return serviceId;
+               }
+               /**
+                * @param serviceId the serviceId to set
+                */
+               public void setServiceId(Long serviceId) {
+                       this.serviceId = serviceId;
+               }
+               /**
+                * @return the policyVersion
+                */
+               public Long getPolicyVersion() {
+                       return policyVersion;
+               }
+               /**
+                * @param policyVersion the policyVersion to set
+                */
+               public void setPolicyVersion(Long policyVersion) {
+                       this.policyVersion = policyVersion;
+               }
+               /**
+                * @return the policyUpdateTime
+                */
+               public Date getPolicyUpdateTime() {
+                       return policyUpdateTime;
+               }
+               /**
+                * @param policyUpdateTime the policyUpdateTime to set
+                */
+               public void setPolicyUpdateTime(Date policyUpdateTime) {
+                       this.policyUpdateTime = policyUpdateTime;
+               }
+               /**
+                * @return the policies
+                */
+               public List<RangerPolicy> getPolicies() {
+                       return policies;
+               }
+               /**
+                * @param policies the policies to set
+                */
+               public void setPolicies(List<RangerPolicy> policies) {
+                       this.policies = policies;
+               }
+               /**
+                * @return the serviceDef
+                */
+               public RangerServiceDef getServiceDef() {
+                       return serviceDef;
+               }
+               /**
+                * @param serviceDef the serviceDef to set
+                */
+               public void setServiceDef(RangerServiceDef serviceDef) {
+                       this.serviceDef = serviceDef;
+               }
+
+               @Override
+               public String toString() {
+                       return Objects.toStringHelper(this.getClass())
+                               .add("serviceName", serviceName)
+                               .add("serviceId", serviceId)
+                               .add("policyVersion", policyVersion)
+                               .add("policyUpdateTime", policyUpdateTime)
+                               .add("policies", policies)
+                               .add("serviceDef", serviceDef)
+                               .toString();
+               }
+       }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/79a4f9db/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 009cbf8..91fafa4 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
@@ -1608,6 +1608,29 @@ public class ServiceDBStore implements ServiceStore {
                                throw new Exception("service-def does not 
exist. id=" + serviceDbObj.getType());
                        }
 
+                       ServicePolicies.TagPolicies tagPolicies = null;
+
+                       if(serviceDbObj.getTagService() != null) {
+                               XXService tagServiceDbObj = 
daoMgr.getXXService().getById(serviceDbObj.getTagService());
+
+                               if(tagServiceDbObj != null) {
+                                       RangerServiceDef tagServiceDef = 
getServiceDef(tagServiceDbObj.getType());
+
+                                       if(tagServiceDef == null) {
+                                               throw new 
Exception("service-def does not exist. id=" + tagServiceDbObj.getType());
+                                       }
+
+                                       tagPolicies = new 
ServicePolicies.TagPolicies();
+
+                                       
tagPolicies.setServiceId(tagServiceDbObj.getId());
+                                       
tagPolicies.setServiceName(tagServiceDbObj.getName());
+                                       
tagPolicies.setPolicyVersion(tagServiceDbObj.getPolicyVersion());
+                                       
tagPolicies.setPolicyUpdateTime(tagServiceDbObj.getPolicyUpdateTime());
+                                       
tagPolicies.setPolicies(getServicePolicies(tagServiceDbObj.getName(), null));
+                                       
tagPolicies.setServiceDef(tagServiceDef);
+                               }
+                       }
+
                        List<RangerPolicy> policies = 
getServicePolicies(serviceName, null);
 
                        ret = new ServicePolicies();
@@ -1618,6 +1641,7 @@ public class ServiceDBStore implements ServiceStore {
                        
ret.setPolicyUpdateTime(serviceDbObj.getPolicyUpdateTime());
                        ret.setPolicies(policies);
                        ret.setServiceDef(serviceDef);
+                       ret.setTagPolicies(tagPolicies);
                }
 
                if(LOG.isDebugEnabled()) {

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/79a4f9db/security-admin/src/main/java/org/apache/ranger/service/RangerServiceServiceBase.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceServiceBase.java
 
b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceServiceBase.java
index 4388a78..57e6ac8 100755
--- 
a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceServiceBase.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceServiceBase.java
@@ -50,6 +50,9 @@ public abstract class RangerServiceServiceBase<T extends 
XXServiceBase, V extend
                searchFields.add(new SearchField(SearchFilter.SERVICE_NAME, 
"obj.name", DATA_TYPE.STRING, SEARCH_TYPE.FULL));
                searchFields.add(new SearchField(SearchFilter.SERVICE_ID, 
"obj.id", DATA_TYPE.INTEGER, SEARCH_TYPE.FULL));
                searchFields.add(new SearchField(SearchFilter.IS_ENABLED, 
"obj.isEnabled", DATA_TYPE.BOOLEAN, SEARCH_TYPE.FULL));
+               searchFields.add(new SearchField(SearchFilter.TAG_SERVICE_ID, 
"obj.tag_service", DATA_TYPE.INTEGER, SEARCH_TYPE.FULL));
+               searchFields.add(new SearchField(SearchFilter.TAG_SERVICE_NAME, 
"xTagSvc.name", DATA_TYPE.STRING,
+                               SEARCH_TYPE.FULL, "XXServiceBase xTagSvc", 
"obj.tag_service = xTagSvc.id"));
                
                sortFields.add(new SortField(SearchFilter.CREATE_TIME, 
"obj.createTime"));
                sortFields.add(new SortField(SearchFilter.UPDATE_TIME, 
"obj.updateTime"));

Reply via email to