Repository: incubator-ranger
Updated Branches:
  refs/heads/master 2bd65f7bc -> f4a7037db


RANGER_963 : Ranger UI : Search tagService filter(API) is not working on 
service create/update page

Signed-off-by: Gautam Borad <[email protected]>


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

Branch: refs/heads/master
Commit: d4fd012ddb15679f09bd83210b18b20ec0232a6d
Parents: 2bd65f7
Author: Mehul Parikh <[email protected]>
Authored: Fri Apr 15 11:44:19 2016 +0530
Committer: Gautam Borad <[email protected]>
Committed: Tue May 10 17:22:47 2016 +0530

----------------------------------------------------------------------
 .../apache/ranger/plugin/util/SearchFilter.java |  1 +
 .../org/apache/ranger/biz/ServiceDBStore.java   |  2 +
 .../apache/ranger/common/RangerSearchUtil.java  |  1 +
 .../service/RangerServiceServiceBase.java       |  1 +
 .../webapp/scripts/models/RangerServiceDef.js   | 61 ++++++++++----------
 5 files changed, 35 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d4fd012d/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 cba3275..cac0181 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
@@ -64,6 +64,7 @@ public class SearchFilter {
        public static final String TAG_MAP_ID                = 
"tagResourceMapId";    // search
        public static final String TAG_MAP_GUID              = 
"tagResourceMapGuid";  // search
 
+       public static final String SERVICE_NAME_PARTIAL      = 
"serviceNamePartial";
        private Map<String, String> params     = null;
        private int                 startIndex = 0;
        private int                 maxRows    = Integer.MAX_VALUE;

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d4fd012d/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 321ab5e..e27f7ce 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
@@ -1620,9 +1620,11 @@ public class ServiceDBStore extends AbstractServiceStore 
{
                }
 
                RangerServiceList serviceList = 
svcService.searchRangerServices(filter);
+               if (StringUtils.isEmpty(filter.getParam("serviceNamePartial"))){
 
                predicateUtil.applyFilter(serviceList.getServices(), filter);
 
+               }
                if (LOG.isDebugEnabled()) {
                        LOG.debug("<== ServiceDBStore.getPaginatedServices()");
                }

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d4fd012d/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java 
b/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java
index 74431df..b8f7c88 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java
@@ -54,6 +54,7 @@ public class RangerSearchUtil extends SearchUtil {
                ret.setParam(SearchFilter.SERVICE_TYPE, 
request.getParameter(SearchFilter.SERVICE_TYPE));
                ret.setParam(SearchFilter.SERVICE_TYPE_ID, 
request.getParameter(SearchFilter.SERVICE_TYPE_ID));
                ret.setParam(SearchFilter.SERVICE_NAME, 
request.getParameter(SearchFilter.SERVICE_NAME));
+               ret.setParam(SearchFilter.SERVICE_NAME_PARTIAL, 
request.getParameter(SearchFilter.SERVICE_NAME_PARTIAL));
                ret.setParam(SearchFilter.SERVICE_ID, 
request.getParameter(SearchFilter.SERVICE_ID));
                ret.setParam(SearchFilter.POLICY_NAME, 
request.getParameter(SearchFilter.POLICY_NAME));
                ret.setParam(SearchFilter.POLICY_NAME_PARTIAL, 
request.getParameter(SearchFilter.POLICY_NAME_PARTIAL));

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d4fd012d/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 33c7d71..53a094f 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
@@ -49,6 +49,7 @@ public abstract class RangerServiceServiceBase<T extends 
XXServiceBase, V extend
                                SEARCH_TYPE.FULL, "XXServiceDef xSvcDef", 
"obj.type = xSvcDef.id"));
                searchFields.add(new SearchField(SearchFilter.SERVICE_TYPE_ID, 
"obj.type", DATA_TYPE.INTEGER, SEARCH_TYPE.FULL));
                searchFields.add(new SearchField(SearchFilter.SERVICE_NAME, 
"obj.name", DATA_TYPE.STRING, SEARCH_TYPE.FULL));
+               searchFields.add(new 
SearchField(SearchFilter.SERVICE_NAME_PARTIAL, "obj.name", DATA_TYPE.STRING, 
SEARCH_TYPE.PARTIAL));
                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));

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d4fd012d/security-admin/src/main/webapp/scripts/models/RangerServiceDef.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/models/RangerServiceDef.js 
b/security-admin/src/main/webapp/scripts/models/RangerServiceDef.js
index e83c994..9c3b585 100644
--- a/security-admin/src/main/webapp/scripts/models/RangerServiceDef.js
+++ b/security-admin/src/main/webapp/scripts/models/RangerServiceDef.js
@@ -80,45 +80,44 @@ define(function(require){
                                        pluginAttr : this.getPluginAttr(),
                                        options    : function(callback, editor){
                            callback();
-                       }
-                                       
+                       },
+                       onFocusOpen : false
                                }
                        });
                },
                getPluginAttr : function(){
-                       return { closeOnSelect : true,
-                       placeholder : 'Select Tag Service',
-                       maximumSelectionSize : 1,
-                       width :'220px',
-                       tokenSeparators: [",", " "],
-                       allowClear: true,
-                       initSelection : function (element, callback) {
-                               callback( { id:element.val(), 
text:element.val() })
-                       },
-                       ajax: { 
-                               url: "service/plugins/services",
-                               dataType: 'json',
-                               data: function (term, page) {
-                                       return { name : term, serviceType : 
'tag' };
+                       return { 
+                               closeOnSelect : true,
+                               placeholder : 'Select Tag Service',
+                               width :'220px',
+                               allowClear: true,
+                               initSelection : function (element, callback) {
+                                       callback( { id:element.val(), 
text:element.val() })
                                },
-                               results: function (data, page) { 
-                                       var results = [];
-                                       if(data.resultSize != "0"){
-                                               results = 
data.services.map(function(m, i){     return {id : m.name, text: m.name};     
});
+                               ajax: { 
+                                       url: "service/plugins/services",
+                                       dataType: 'json',
+                                       data: function (term, page) {
+                                               return { serviceNamePartial : 
term, serviceType : 'tag' };
+                                       },
+                                       results: function (data, page) { 
+                                               var results = [];
+                                               if(data.resultSize != "0"){
+                                                       results = 
data.services.map(function(m, i){     return {id : m.name, text: m.name};     
});
+                                                       return {results : 
results};
+                                               }
                                                return {results : results};
                                        }
-                                       return {results : results};
+                               },      
+                               formatResult : function(result){
+                                       return result.text;
+                               },
+                               formatSelection : function(result){
+                                       return result.text;
+                               },
+                               formatNoMatches: function(result){
+                                       return 'No tag service found.';
                                }
-                       },      
-                       formatResult : function(result){
-                               return result.text;
-                       },
-                       formatSelection : function(result){
-                               return result.text;
-                       },
-                       formatNoMatches: function(result){
-                               return 'No tag service found.';
-                       }
                        };
                },
 

Reply via email to