This is an automated email from the ASF dual-hosted git repository.

madhan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/master by this push:
     new 5981fb3e1 RANGER-4749: fixed TagREST.getServiceResourceByResource() to 
populate resource value in response - #2
5981fb3e1 is described below

commit 5981fb3e1e80debef39700f2da7d1829bff5d3c6
Author: Anand Nadar <nadaranand...@gmail.com>
AuthorDate: Tue Mar 26 13:26:39 2024 -0700

    RANGER-4749: fixed TagREST.getServiceResourceByResource() to populate 
resource value in response - #2
    
    Signed-off-by: Madhan Neethiraj <mad...@apache.org>
---
 .../main/java/org/apache/ranger/biz/TagDBStore.java | 10 ++++++----
 .../main/java/org/apache/ranger/rest/TagREST.java   |  2 +-
 .../java/org/apache/ranger/biz/TestTagDBStore.java  | 21 +++++++++++++++++++++
 3 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java 
b/security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java
index ce5950584..63bde37d8 100755
--- a/security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java
@@ -1398,9 +1398,9 @@ public class TagDBStore extends AbstractTagStore {
                }
        }
 
-       public RangerServiceResource getRangerServiceResource(String 
serviceName, Map<String, String[]> resourceMap) {
+       public static RangerServiceResource toRangerServiceResource(String 
serviceName, Map<String, String[]> resourceMap) {
                if (LOG.isDebugEnabled()) {
-                       LOG.debug("==> TagDBStore.getRangerServiceResource(): 
serviceName={" + serviceName + "}");
+                       LOG.debug("==> TagDBStore.toRangerServiceResource(): 
serviceName={" + serviceName + "}");
                }
 
                Map<String, RangerPolicyResource> resourceElements = new 
HashMap<>();
@@ -1424,11 +1424,13 @@ public class TagDBStore extends AbstractTagStore {
                        }
 
                        if (parts.length == 1) {
-                               List<String> valueList = new ArrayList<>();
+                               List<String> valueList = new 
ArrayList<>(valueArray.length);
 
                                for (String str : valueArray) {
                                        valueList.add(str.trim());
                                }
+
+                               policyResource.setValues(valueList);
                        } else if (parts.length == 2 && valueArray[0] != null) {
                                String subKey = parts[1];
                                String value  = valueArray[0];
@@ -1444,7 +1446,7 @@ public class TagDBStore extends AbstractTagStore {
                RangerServiceResource ret = new 
RangerServiceResource(serviceName, resourceElements);
 
                if (LOG.isDebugEnabled()) {
-                       LOG.debug("<== TagDBStore.getRangerServiceResource(): 
(serviceName={" + serviceName + "} RangerServiceResource={" + ret + "})");
+                       LOG.debug("<== TagDBStore.toRangerServiceResource(): 
(serviceName={" + serviceName + "} RangerServiceResource={" + ret + "})");
                }
 
                return ret;
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 882bf4d86..2adf0b0a2 100755
--- a/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java
@@ -1028,7 +1028,7 @@ public class TagREST {
         }
 
         Map<String, String[]> resourceMap     = 
searchUtil.getMultiValueParamsWithPrefix(request, SearchFilter.RESOURCE_PREFIX, 
true);
-        RangerServiceResource serviceResource = 
tagStore.getRangerServiceResource(serviceName, resourceMap);
+        RangerServiceResource serviceResource = 
tagStore.toRangerServiceResource(serviceName, resourceMap);
 
         serviceResource = 
getServiceResourceByServiceAndResourceSignature(serviceName, new 
RangerServiceResourceSignature(serviceResource).getSignature());
 
diff --git 
a/security-admin/src/test/java/org/apache/ranger/biz/TestTagDBStore.java 
b/security-admin/src/test/java/org/apache/ranger/biz/TestTagDBStore.java
index acc9cab3c..beba9af61 100755
--- a/security-admin/src/test/java/org/apache/ranger/biz/TestTagDBStore.java
+++ b/security-admin/src/test/java/org/apache/ranger/biz/TestTagDBStore.java
@@ -21,7 +21,10 @@ import static org.mockito.ArgumentMatchers.any;
 
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+
 import javax.ws.rs.WebApplicationException;
 import org.apache.ranger.common.MessageEnums;
 import org.apache.ranger.common.RESTErrorUtil;
@@ -50,6 +53,7 @@ import 
org.apache.ranger.plugin.model.RangerServiceResourceWithTags;
 import org.apache.ranger.plugin.model.RangerTag;
 import org.apache.ranger.plugin.model.RangerTagDef;
 import org.apache.ranger.plugin.model.RangerTagResourceMap;
+import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyResource;
 import org.apache.ranger.plugin.store.PList;
 import org.apache.ranger.plugin.util.SearchFilter;
 import org.apache.ranger.plugin.util.ServiceTags;
@@ -1239,4 +1243,21 @@ public class TestTagDBStore {
 
         return rangerServiceResourceViewList;
     }
+
+    @Test
+    public void testToRangerServiceResource() {
+        Map<String, String[]>             resourceMap      = new HashMap<>();
+        Map<String, RangerPolicyResource> resourceElements = new HashMap<>();
+
+        resourceMap.put("database",             new String[] { "db1" });
+        resourceMap.put("database.isExcludes",  new String[] { "false" });
+        resourceMap.put("database.isRecursive", new String[] { "false" });
+
+        resourceElements.put("database", new RangerPolicyResource("db1", 
false, false));
+
+        RangerServiceResource expectedResource = new 
RangerServiceResource(serviceName, resourceElements);
+        RangerServiceResource actualResource   = 
tagDBStore.toRangerServiceResource(serviceName, resourceMap);
+
+        Assert.assertEquals(expectedResource.getResourceElements(), 
actualResource.getResourceElements());
+    }
 }
\ No newline at end of file

Reply via email to