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.'; - } }; },
