Repository: ranger
Updated Branches:
  refs/heads/master 626f92a92 -> ab6cb3935


RANGER-2085: fix in resource lookup (entity-id) in Atlas service

Signed-off-by: Madhan Neethiraj <mad...@apache.org>


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

Branch: refs/heads/master
Commit: ab6cb3935ad48948047028750fe8167c66111f87
Parents: 626f92a
Author: nixonrodrigues <ni...@apache.org>
Authored: Fri May 11 19:19:46 2018 +0530
Committer: Madhan Neethiraj <mad...@apache.org>
Committed: Tue May 15 11:14:14 2018 -0700

----------------------------------------------------------------------
 .../services/atlas/RangerServiceAtlas.java      | 94 ++++++++++----------
 1 file changed, 47 insertions(+), 47 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ranger/blob/ab6cb393/plugin-atlas/src/main/java/org/apache/ranger/services/atlas/RangerServiceAtlas.java
----------------------------------------------------------------------
diff --git 
a/plugin-atlas/src/main/java/org/apache/ranger/services/atlas/RangerServiceAtlas.java
 
b/plugin-atlas/src/main/java/org/apache/ranger/services/atlas/RangerServiceAtlas.java
index fb3688b..aba4b8c 100644
--- 
a/plugin-atlas/src/main/java/org/apache/ranger/services/atlas/RangerServiceAtlas.java
+++ 
b/plugin-atlas/src/main/java/org/apache/ranger/services/atlas/RangerServiceAtlas.java
@@ -69,7 +69,7 @@ public class RangerServiceAtlas extends RangerBaseService {
 
        private static final String URL_LOGIN                = 
"/j_spring_security_check";
        private static final String URL_GET_TYPESDEF_HEADERS = 
"/api/atlas/v2/types/typedefs/headers";
-       private static final String URl_ENTITY_SEARCH = 
"v2/search/attribute?attrName=qualifiedName";
+       private static final String URl_ENTITY_SEARCH        = 
"v2/search/attribute?attrName=qualifiedName";
 
        private static final String WEB_RESOURCE_CONTENT_TYPE = 
"application/x-www-form-urlencoded";
        private static final String CONNECTION_ERROR_MSG      =   " You can 
still save the repository and start creating"
@@ -91,12 +91,11 @@ public class RangerServiceAtlas extends RangerBaseService {
                        LOG.debug("==> RangerServiceAtlas.validateConfig()");
                }
 
-               AtlasServiceClient client = new 
AtlasServiceClient(getServiceName(), configs);
-
-               Map<String, Object> ret = client.validateConfig();
+               AtlasServiceClient  client = new 
AtlasServiceClient(getServiceName(), configs);
+               Map<String, Object> ret    = client.validateConfig();
 
                if (LOG.isDebugEnabled()) {
-                       LOG.debug("<== RangerServiceAtlas.validateConfig(): "+ 
ret );
+                       LOG.debug("<== RangerServiceAtlas.validateConfig(): " + 
ret );
                }
 
                return ret;
@@ -105,12 +104,11 @@ public class RangerServiceAtlas extends RangerBaseService 
{
        @Override
        public List<String> lookupResource(ResourceLookupContext context)throws 
Exception {
                if (LOG.isDebugEnabled()) {
-                       LOG.debug("==> RangerServiceAtlas.lookupResource("+ 
context + ")");
+                       LOG.debug("==> RangerServiceAtlas.lookupResource(" + 
context + ")");
                }
 
                AtlasServiceClient client = new 
AtlasServiceClient(getServiceName(), configs);
-
-               List<String> ret = client.lookupResource(context);
+               List<String>       ret    = client.lookupResource(context);
 
                if (LOG.isDebugEnabled()) {
                        LOG.debug("<== RangerServiceAtlas.lookupResource("+ 
context + "): " + ret);
@@ -122,28 +120,29 @@ public class RangerServiceAtlas extends RangerBaseService 
{
     @Override
     public List<RangerPolicy> getDefaultRangerPolicies() throws Exception {
         if (LOG.isDebugEnabled()) {
-            LOG.debug("==> RangerServiceAtlas.getDefaultRangerPolicies() ");
+            LOG.debug("==> RangerServiceAtlas.getDefaultRangerPolicies()");
         }
 
         List<RangerPolicy> ret = super.getDefaultRangerPolicies();
 
         for (RangerPolicy defaultPolicy : ret) {
             for (RangerPolicy.RangerPolicyItem defaultPolicyItem : 
defaultPolicy.getPolicyItems()) {
-                List<String> users = defaultPolicyItem.getUsers();
+                List<String> users     = defaultPolicyItem.getUsers();
+                String       adminUser = 
service.getConfigs().get("atlas.admin.user");
 
-                String atlasAdminUser = 
service.getConfigs().get("atlas.admin.user");
-                if (StringUtils.isBlank(atlasAdminUser)) {
-                    atlasAdminUser = "admin";
+                if (StringUtils.isBlank(adminUser)) {
+                    adminUser = "admin";
                 }
 
-                users.add(atlasAdminUser);
+                users.add(adminUser);
                 defaultPolicyItem.setUsers(users);
             }
         }
 
         if (LOG.isDebugEnabled()) {
-            LOG.debug("<== RangerServiceAtlas.getDefaultRangerPolicies() ");
+            LOG.debug("<== RangerServiceAtlas.getDefaultRangerPolicies()");
         }
+
         return ret;
     }
 
@@ -171,8 +170,6 @@ public class RangerServiceAtlas extends RangerBaseService {
                        final String       userInput     = 
lookupContext.getUserInput();
                        final List<String> currentValues = 
lookupContext.getResources().get(lookupContext.getResourceName());
 
-
-
                        switch(lookupContext.getResourceName()) {
                                case RESOURCE_TYPE_CATEGORY: {
                                        for (String typeCategory : 
TYPE_CATEGORIES) {
@@ -224,9 +221,12 @@ public class RangerServiceAtlas extends RangerBaseService {
 
                                case RESOURCE_ENTITY_ID: {
                                        List<String> searchTypes = 
lookupContext.getResources().get("entity-type");
-                                       List<String> values = 
searchEntities(userInput , searchTypes);
-                                       addIfStartsWithAndNotExcluded(ret, 
values, userInput, currentValues);
 
+                                       if (searchTypes != null && 
searchTypes.size() == 1) {
+                                               List<String> values = 
searchEntities(userInput, searchTypes.get(0));
+
+                                               
addIfStartsWithAndNotExcluded(ret, values, userInput, currentValues);
+                                       }
                                }
                                break;
 
@@ -279,6 +279,7 @@ public class RangerServiceAtlas extends RangerBaseService {
                                        LOG.error(msgDesc, t);
 
                                        excp = new HadoopException(msgDesc, t);
+
                                        excp.generateResponseDataMap(false, 
BaseClient.getMessage(t), msgDesc + CONNECTION_ERROR_MSG, null, null);
                                }
                        }
@@ -288,6 +289,7 @@ public class RangerServiceAtlas extends RangerBaseService {
                                        String msgDesc = "Exception while login 
to Atlas at : " + loginUrl;
 
                                        excp = new HadoopException(msgDesc);
+
                                        excp.generateResponseDataMap(false, "", 
msgDesc + CONNECTION_ERROR_MSG, null, null);
                                }
 
@@ -298,8 +300,7 @@ public class RangerServiceAtlas extends RangerBaseService {
                }
 
                private boolean refreshTypesDefs() {
-                       boolean ret = false;
-
+                       boolean ret  = false;
                        Subject subj = getLoginSubject();
 
                        if (subj == null) {
@@ -336,8 +337,7 @@ public class RangerServiceAtlas extends RangerBaseService {
 
                                                                for (Object 
type : types) {
                                                                        if 
(type instanceof Map) {
-                                                                               
Map typeDef = (Map) type;
-
+                                                                               
Map    typeDef  = (Map) type;
                                                                                
Object name     = typeDef.get("name");
                                                                                
Object category = typeDef.get("category");
 
@@ -360,6 +360,7 @@ public class RangerServiceAtlas extends RangerBaseService {
                                                        }
                                                } catch (Throwable t) {
                                                        String msgDesc = 
"Exception while getting Atlas Resource List.";
+
                                                        LOG.error(msgDesc, t);
                                                } finally {
                                                        if (client != null) {
@@ -374,18 +375,17 @@ public class RangerServiceAtlas extends RangerBaseService 
{
 
                        if (typesDef != null) {
                                this.typesDef = typesDef;
+
                                ret = true;
                        }
 
                        return ret;
                }
 
-               private List<String> searchEntities(String userInput, 
List<String> types) {
-
+               private List<String> searchEntities(String userInput, String 
entityType) {
                        if( LOG.isDebugEnabled()) {
-                               LOG.info(" RangerServiceAtlas.searchEntities 
==>> userInput" + userInput +" types "+ types);
+                               LOG.debug("==> 
RangerServiceAtlas.searchEntities(userInput=" + userInput + ", entityType=" + 
entityType + ")");
                        }
-                       List<String> list = null;
 
                        Subject subj = getLoginSubject();
 
@@ -393,34 +393,29 @@ public class RangerServiceAtlas extends RangerBaseService 
{
                                return null;
                        }
 
-                       list = Subject.doAs(subj, new 
PrivilegedAction<List<String>>() {
+                       List<String> list = Subject.doAs(subj, new 
PrivilegedAction<List<String>>() {
                                @Override
                                public List<String> run() {
                                        List<String> ret = null;
-                                       String entityType = "";
-                                       if (types != null && types.size() == 1) 
{
-                                               entityType = types.get(0);
-                                       } else {
-                                               return null;
-                                       }
+
                                        for (String atlasUrl : getAtlasUrls()) {
                                                Client client = null;
 
                                                try {
                                                        client = 
Client.create();
 
-                                                       ClientResponse 
loginResponse = loginToAtlas(client);
-                                                       String 
entitySearcApiUrl = atlasUrl + "/api/atlas/" + URl_ENTITY_SEARCH;
-                                                       StringBuilder searchUrl 
= new StringBuilder();
+                                                       ClientResponse 
loginResponse     = loginToAtlas(client);
+                                                       String         
entitySearcApiUrl = atlasUrl + "/api/atlas/" + URl_ENTITY_SEARCH;
+                                                       StringBuilder  
searchUrl         = new StringBuilder();
 
                                                        
searchUrl.append(entitySearcApiUrl)
-                                                                       
.append("&typeName=")
-                                                                       
.append(entityType)
-                                                                       
.append("&attrValuePrefix=" + userInput + "&limit=25");
+                                                                        
.append("&typeName=")
+                                                                        
.append(entityType)
+                                                                        
.append("&attrValuePrefix=" + userInput + "&limit=25");
 
 
-                                                       WebResource webResource 
= client.resource(searchUrl.toString());
-                                                       WebResource.Builder 
builder = webResource.getRequestBuilder();
+                                                       WebResource         
webResource = client.resource(searchUrl.toString());
+                                                       WebResource.Builder 
builder     = webResource.getRequestBuilder();
 
                                                        for (NewCookie cook : 
loginResponse.getCookies()) {
                                                                builder = 
builder.cookie(cook);
@@ -429,14 +424,15 @@ public class RangerServiceAtlas extends RangerBaseService 
{
                                                        ClientResponse response 
= builder.get(ClientResponse.class);
 
                                                        if (response != null) {
-                                                               String 
jsonString = response.getEntity(String.class);
-                                                               Gson gson = new 
Gson();
+                                                               String          
  jsonString   = response.getEntity(String.class);
+                                                               Gson            
  gson         = new Gson();
                                                                
AtlasSearchResult searchResult = gson.fromJson(jsonString, 
AtlasSearchResult.class);
 
                                                                ret = new 
ArrayList<>();
 
                                                                if 
(searchResult != null) {
                                                                        
List<AtlasEntityHeader> entityHeaderList = searchResult.getEntities();
+
                                                                        for 
(AtlasEntityHeader entity : entityHeaderList) {
                                                                                
ret.add((String) entity.getAttribute("qualifiedName"));
                                                                        }
@@ -444,6 +440,7 @@ public class RangerServiceAtlas extends RangerBaseService {
                                                        }
                                                } catch (Throwable t) {
                                                        String msgDesc = 
"Exception while getting Atlas Entity Resource List.";
+
                                                        LOG.error(msgDesc, t);
                                                } finally {
                                                        if (client != null) {
@@ -456,13 +453,16 @@ public class RangerServiceAtlas extends RangerBaseService 
{
                                }
                        });
 
+                       if (LOG.isDebugEnabled()) {
+                               LOG.debug("<== 
RangerServiceAtlas.searchEntities(userInput=" + userInput + ", entityType=" + 
entityType + "): " + list);
+                       }
+
                        return list;
                }
 
                String[] getAtlasUrls() {
-                       String urlString = 
connectionProperties.get(CONFIG_REST_ADDRESS);
-
-                       String[] ret = urlString == null ? new String[0] : 
urlString.split(",");
+                       String   urlString = 
connectionProperties.get(CONFIG_REST_ADDRESS);
+                       String[] ret       = urlString == null ? new String[0] 
: urlString.split(",");
 
                        // remove separator at the end
                        for (int i = 0; i < ret.length; i++) {

Reply via email to