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 bb05c64  RANGER-2779: updated ADLS-Gen2 resource mapper for Atlas 
changes in qualifiedName - #2
bb05c64 is described below

commit bb05c645fccb45dcadeaf557fa7dd174413d7af3
Author: Madhan Neethiraj <[email protected]>
AuthorDate: Thu Apr 9 09:07:28 2020 -0700

    RANGER-2779: updated ADLS-Gen2 resource mapper for Atlas changes in 
qualifiedName - #2
---
 .../source/atlas/AtlasAdlsResourceMapper.java      | 37 +++++++++-------------
 .../tagsync/process/TestAdlsResourceMapper.java    | 34 +++++++++++++++++---
 2 files changed, 44 insertions(+), 27 deletions(-)

diff --git 
a/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/AtlasAdlsResourceMapper.java
 
b/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/AtlasAdlsResourceMapper.java
index e38f5fa..331a70c 100644
--- 
a/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/AtlasAdlsResourceMapper.java
+++ 
b/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/AtlasAdlsResourceMapper.java
@@ -127,33 +127,26 @@ public class AtlasAdlsResourceMapper extends 
AtlasResourceMapper {
 
                        if (idxClusterNameSep != -1) {
                                ret[IDX_CLUSTER_NAME] = 
qualifiedName.substring(idxClusterNameSep + CLUSTER_DELIMITER.length());
-                       }
-
-                       int idxProtocolStart = 
qualifiedName.indexOf(SEP_PROTOCOL);
-
-                       if (idxProtocolStart != -1) {
-                               int idxResourceStart = idxProtocolStart + 
SEP_PROTOCOL.length();
-                               int idxContainerSep  = 
qualifiedName.indexOf(SEP_CONTAINER, idxResourceStart);
 
-                               if (idxContainerSep != -1) {
-                                       if (idxContainerSep == 
idxClusterNameSep) { // this is adls_gen2_account, so no containerName
-                                               ret[IDX_RESOURCE_ACCOUNT] = 
qualifiedName.substring(idxResourceStart, idxContainerSep);
-                                       } else {
-                                               ret[IDX_RESOURCE_CONTAINER] = 
qualifiedName.substring(idxResourceStart, idxContainerSep);
+                               int idxProtocolSep = 
qualifiedName.indexOf(SEP_PROTOCOL);
 
-                                               int idxAccountSep = 
qualifiedName.indexOf(SEP_ACCOUNT, idxContainerSep + SEP_CONTAINER.length());
+                               if (idxProtocolSep != -1) {
+                                       int idxResourceStart       = 
idxProtocolSep + SEP_PROTOCOL.length();
+                                       int idxContainerAccountSep = 
qualifiedName.indexOf(SEP_CONTAINER, idxResourceStart);
 
-                                               if (idxAccountSep != -1) {
-                                                       
ret[IDX_RESOURCE_ACCOUNT] = qualifiedName.substring(idxContainerSep + 
SEP_CONTAINER.length(), idxAccountSep);
+                                       if (idxContainerAccountSep != -1) {
+                                               if (idxContainerAccountSep == 
idxClusterNameSep) { // this is adls_gen2_account, so no containerName
+                                                       
ret[IDX_RESOURCE_ACCOUNT] = qualifiedName.substring(idxResourceStart, 
idxClusterNameSep);
+                                               } else {
+                                                       
ret[IDX_RESOURCE_CONTAINER] = qualifiedName.substring(idxResourceStart, 
idxContainerAccountSep);
 
-                                                       int idxRelativePath = 
qualifiedName.indexOf(SEP_RELATIVE_PATH, idxAccountSep + SEP_ACCOUNT.length());
+                                                       int idxRelativePath = 
qualifiedName.indexOf(SEP_RELATIVE_PATH, idxContainerAccountSep + 
SEP_CONTAINER.length());
 
-                                                       if (idxRelativePath != 
-1) {
-                                                               if 
(idxClusterNameSep == -1) {
-                                                                       
ret[IDX_RESOURCE_RELATIVE_PATH] = qualifiedName.substring(idxRelativePath);
-                                                               } else {
-                                                                       
ret[IDX_RESOURCE_RELATIVE_PATH] = qualifiedName.substring(idxRelativePath, 
idxClusterNameSep);
-                                                               }
+                                                       if (idxRelativePath == 
-1) { // this is adls_gen2_container, so no relativePath
+                                                               
ret[IDX_RESOURCE_ACCOUNT] = qualifiedName.substring(idxContainerAccountSep + 
SEP_CONTAINER.length(), idxClusterNameSep);
+                                                       } else {
+                                                               
ret[IDX_RESOURCE_ACCOUNT]       = 
qualifiedName.substring(idxContainerAccountSep + SEP_CONTAINER.length(), 
idxRelativePath);
+                                                               
ret[IDX_RESOURCE_RELATIVE_PATH] = qualifiedName.substring(idxRelativePath, 
idxClusterNameSep);
                                                        }
                                                }
                                        }
diff --git 
a/tagsync/src/test/java/org/apache/ranger/tagsync/process/TestAdlsResourceMapper.java
 
b/tagsync/src/test/java/org/apache/ranger/tagsync/process/TestAdlsResourceMapper.java
index d0b4339..871c9e1 100644
--- 
a/tagsync/src/test/java/org/apache/ranger/tagsync/process/TestAdlsResourceMapper.java
+++ 
b/tagsync/src/test/java/org/apache/ranger/tagsync/process/TestAdlsResourceMapper.java
@@ -32,12 +32,15 @@ import static 
org.apache.ranger.tagsync.source.atlas.AtlasResourceMapper.ENTITY_
 
 
 public class TestAdlsResourceMapper {
-    private static final String ACCOUNT_QUALIFIED_NAME       = 
"abfs://myaccount@cl1";
-    private static final String CONTAINER_QUALIFIED_NAME     = 
"abfs://[email protected]@cl1";
-    private static final String RELATIVE_PATH_QUALIFIED_NAME = 
"abfs://[email protected]/tmp@cl1";
+    private static final String ACCOUNT_QUALIFIED_NAME        = 
"abfs://myaccount@cl1";
+    private static final String CONTAINER_QUALIFIED_NAME      = 
"abfs://mycontainer@myaccount@cl1";
+    private static final String RELATIVE_PATH_QUALIFIED_NAME  = 
"abfs://mycontainer@myaccount/tmp@cl1";
+    private static final String CONTAINER2_QUALIFIED_NAME     = 
"abfs://[email protected]@cl1";
+    private static final String RELATIVE_PATH2_QUALIFIED_NAME = 
"abfs://[email protected]/tmp@cl1";
 
     private static final String SERVICE_NAME                 = "cl1_adls";
     private static final String ACCOUNT_NAME                 = "myaccount";
+    private static final String ACCOUNT2_NAME                = 
"myaccount.dfs.core.windows.net";
     private static final String CONTAINER_NAME               = "mycontainer";
     private static final String RELATIVE_PATH_NAME           = "/tmp";
 
@@ -77,6 +80,29 @@ public class TestAdlsResourceMapper {
     }
 
     @Test
+    public void testContainer2Entity() throws Exception {
+        RangerAtlasEntity     entity   = 
getEntity(ENTITY_TYPE_ADLS_GEN2_CONTAINER, CONTAINER2_QUALIFIED_NAME);
+        RangerServiceResource resource = resourceMapper.buildResource(entity);
+
+        Assert.assertEquals(SERVICE_NAME, resource.getServiceName());
+        assertResourceElementCount(resource, 2);
+        assertResourceElementValue(resource, RANGER_TYPE_ADLS_GEN2_ACCOUNT, 
ACCOUNT2_NAME);
+        assertResourceElementValue(resource, RANGER_TYPE_ADLS_GEN2_CONTAINER, 
CONTAINER_NAME);
+    }
+
+    @Test
+    public void testDirectory2Entity() throws Exception {
+        RangerAtlasEntity     entity   = 
getEntity(ENTITY_TYPE_ADLS_GEN2_DIRECTORY, RELATIVE_PATH2_QUALIFIED_NAME);
+        RangerServiceResource resource = resourceMapper.buildResource(entity);
+
+        Assert.assertEquals(SERVICE_NAME, resource.getServiceName());
+        assertResourceElementCount(resource, 3);
+        assertResourceElementValue(resource, RANGER_TYPE_ADLS_GEN2_ACCOUNT, 
ACCOUNT2_NAME);
+        assertResourceElementValue(resource, RANGER_TYPE_ADLS_GEN2_CONTAINER, 
CONTAINER_NAME);
+        assertResourceElementValue(resource, 
RANGER_TYPE_ADLS_GEN2_RELATIVE_PATH, RELATIVE_PATH_NAME);
+    }
+
+    @Test
     public void testInvalidEntityType() {
         assertException(getEntity("Unknown", RELATIVE_PATH_QUALIFIED_NAME), 
"unrecognized entity-type");
     }
@@ -96,7 +122,6 @@ public class TestAdlsResourceMapper {
         assertException(getEntity(ENTITY_TYPE_ADLS_GEN2_CONTAINER, "test"), 
"cluster-name not found");
         assertException(getEntity(ENTITY_TYPE_ADLS_GEN2_CONTAINER, 
"test@cl1"), "account-name not found");
         assertException(getEntity(ENTITY_TYPE_ADLS_GEN2_CONTAINER, 
"abfs://test@cl1"), "container-name not found");
-        assertException(getEntity(ENTITY_TYPE_ADLS_GEN2_CONTAINER, 
"abfs://a@test@cl1"), "account-name not found");
     }
 
     @Test
@@ -106,7 +131,6 @@ public class TestAdlsResourceMapper {
         assertException(getEntity(ENTITY_TYPE_ADLS_GEN2_DIRECTORY, "test"), 
"cluster-name not found");
         assertException(getEntity(ENTITY_TYPE_ADLS_GEN2_DIRECTORY, 
"test@cl1"), "account-name not found");
         assertException(getEntity(ENTITY_TYPE_ADLS_GEN2_DIRECTORY, 
"abfs://test@cl1"), "container-name not found");
-        assertException(getEntity(ENTITY_TYPE_ADLS_GEN2_DIRECTORY, 
"abfs://a@test@cl1"), "account-name not found");
         assertException(getEntity(ENTITY_TYPE_ADLS_GEN2_DIRECTORY, 
"abfs://[email protected]@cl1"), "relative-path not found");
     }
 

Reply via email to