Repository: falcon Updated Branches: refs/heads/master 71cfc47b8 -> 1dd301810
FALCON-1158 Rename the parameter 'pattern' in LIST API to 'nameseq'. Contributed by Ying Zheng Project: http://git-wip-us.apache.org/repos/asf/falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/falcon/commit/1dd30181 Tree: http://git-wip-us.apache.org/repos/asf/falcon/tree/1dd30181 Diff: http://git-wip-us.apache.org/repos/asf/falcon/diff/1dd30181 Branch: refs/heads/master Commit: 1dd3018105814372362e957b6a7bf5b26e58fae7 Parents: 71cfc47 Author: Suhas Vasu <[email protected]> Authored: Mon Apr 20 13:01:52 2015 +0530 Committer: Suhas Vasu <[email protected]> Committed: Mon Apr 20 13:01:52 2015 +0530 ---------------------------------------------------------------------- CHANGES.txt | 3 ++ .../java/org/apache/falcon/cli/FalconCLI.java | 11 +++---- .../org/apache/falcon/client/FalconClient.java | 14 ++++----- docs/src/site/twiki/FalconCLI.twiki | 3 +- docs/src/site/twiki/restapi/EntityList.twiki | 33 ++++++++++++++++++-- .../falcon/resource/AbstractEntityManager.java | 18 +++++------ .../proxy/SchedulableEntityManagerProxy.java | 4 +-- .../resource/SchedulableEntityManager.java | 4 +-- .../java/org/apache/falcon/cli/FalconCLIIT.java | 2 +- 9 files changed, 61 insertions(+), 31 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/falcon/blob/1dd30181/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 859bad0..9cd3f2d 100755 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -42,6 +42,9 @@ Branch: 0.6.1 (Proposed Release Version: 0.6.1) FALCON-822 Add reverse look up API (Ajay Yadava via Suhas Vasu) IMPROVEMENTS + FALCON-1158 Rename the parameter "pattern" in LIST API to "nameseq" + (Ying Zheng via Suhas Vasu) + FALCON-1142 ClusterEntityParserTest.testClusterWithOnlyStaging fails when run alone(Pallavi Rao via Suhas Vasu) http://git-wip-us.apache.org/repos/asf/falcon/blob/1dd30181/client/src/main/java/org/apache/falcon/cli/FalconCLI.java ---------------------------------------------------------------------- diff --git a/client/src/main/java/org/apache/falcon/cli/FalconCLI.java b/client/src/main/java/org/apache/falcon/cli/FalconCLI.java index 4ea9fc3..7d56b01 100644 --- a/client/src/main/java/org/apache/falcon/cli/FalconCLI.java +++ b/client/src/main/java/org/apache/falcon/cli/FalconCLI.java @@ -97,7 +97,7 @@ public class FalconCLI { public static final String OFFSET_OPT = "offset"; public static final String NUM_RESULTS_OPT = "numResults"; public static final String NUM_INSTANCES_OPT = "numInstances"; - public static final String PATTERN_OPT = "pattern"; + public static final String NAMESEQ_OPT = "nameseq"; public static final String FORCE_RERUN_FLAG = "force"; public static final String INSTANCE_CMD = "instance"; @@ -393,7 +393,7 @@ public class FalconCLI { String sortOrder = commandLine.getOptionValue(SORT_ORDER_OPT); String filterBy = commandLine.getOptionValue(FILTER_BY_OPT); String filterTags = commandLine.getOptionValue(TAGS_OPT); - String searchPattern = commandLine.getOptionValue(PATTERN_OPT); + String nameseq = commandLine.getOptionValue(NAMESEQ_OPT); String fields = commandLine.getOptionValue(FIELDS_OPT); String feedInstancePath = commandLine.getOptionValue(PATH_OPT); Integer offset = parseIntegerInput(commandLine.getOptionValue(OFFSET_OPT), 0, "offset"); @@ -463,7 +463,7 @@ public class FalconCLI { validateOrderBy(orderBy, entityAction); validateFilterBy(filterBy, entityAction); EntityList entityList = client.getEntityList(entityType, fields, filterBy, - filterTags, orderBy, sortOrder, offset, numResults, searchPattern); + filterTags, orderBy, sortOrder, offset, numResults, nameseq); result = entityList != null ? entityList.toString() : "No entity of type (" + entityType + ") found."; } else if (optionsList.contains(SUMMARY_OPT)) { validateEntityTypeForSummary(entityType); @@ -681,8 +681,7 @@ public class FalconCLI { Option fields = new Option(FIELDS_OPT, true, "Entity fields to show for a request"); Option filterBy = new Option(FILTER_BY_OPT, true, "Filter returned entities by the specified status"); - Option searchPattern = new Option(PATTERN_OPT, true, - "Filter entities by fuzzy matching with specified pattern"); + Option nameseq = new Option(NAMESEQ_OPT, true, "Subsequence of entity name"); Option filterTags = new Option(TAGS_OPT, true, "Filter returned entities by the specified tags"); Option orderBy = new Option(ORDER_BY_OPT, true, "Order returned entities by this field"); @@ -707,7 +706,7 @@ public class FalconCLI { entityOptions.addOption(end); entityOptions.addOption(fields); entityOptions.addOption(filterBy); - entityOptions.addOption(searchPattern); + entityOptions.addOption(nameseq); entityOptions.addOption(filterTags); entityOptions.addOption(orderBy); entityOptions.addOption(sortOrder); http://git-wip-us.apache.org/repos/asf/falcon/blob/1dd30181/client/src/main/java/org/apache/falcon/client/FalconClient.java ---------------------------------------------------------------------- diff --git a/client/src/main/java/org/apache/falcon/client/FalconClient.java b/client/src/main/java/org/apache/falcon/client/FalconClient.java index 8b40ef2..fedcea6 100644 --- a/client/src/main/java/org/apache/falcon/client/FalconClient.java +++ b/client/src/main/java/org/apache/falcon/client/FalconClient.java @@ -370,9 +370,9 @@ public class FalconClient { public EntityList getEntityList(String entityType, String fields, String filterBy, String filterTags, String orderBy, String sortOrder, Integer offset, - Integer numResults, String searchPattern) throws FalconCLIException { + Integer numResults, String nameseq) throws FalconCLIException { return sendListRequest(Entities.LIST, entityType, fields, filterBy, - filterTags, orderBy, sortOrder, offset, numResults, searchPattern); + filterTags, orderBy, sortOrder, offset, numResults, nameseq); } public EntitySummaryResult getEntitySummary(String entityType, String cluster, String start, String end, @@ -608,7 +608,7 @@ public class FalconClient { String start, String end, String runId, String colo, String fields, String filterBy, String tags, String orderBy, String sortOrder, Integer offset, - Integer numResults, Integer numInstances, String searchPattern, + Integer numResults, Integer numInstances, String nameseq, Boolean isForced) { if (!StringUtils.isEmpty(fields)) { @@ -648,8 +648,8 @@ public class FalconClient { resource = resource.queryParam("numInstances", numInstances.toString()); } - if (!StringUtils.isEmpty(searchPattern)) { - resource = resource.queryParam("pattern", searchPattern); + if (!StringUtils.isEmpty(nameseq)) { + resource = resource.queryParam("nameseq", nameseq); } if (isForced != null) { resource = resource.queryParam("force", String.valueOf(isForced)); @@ -833,11 +833,11 @@ public class FalconClient { //SUSPEND CHECKSTYLE CHECK ParameterNumberCheck private EntityList sendListRequest(Entities entities, String entityType, String fields, String filterBy, String filterTags, String orderBy, String sortOrder, Integer offset, - Integer numResults, String searchPattern) throws FalconCLIException { + Integer numResults, String nameseq) throws FalconCLIException { WebResource resource = service.path(entities.path) .path(entityType); resource = addParamsToResource(resource, null, null, null, null, fields, filterBy, filterTags, - orderBy, sortOrder, offset, numResults, null, searchPattern, null); + orderBy, sortOrder, offset, numResults, null, nameseq, null); ClientResponse clientResponse = resource .header("Cookie", AUTH_COOKIE_EQ + authenticationToken) http://git-wip-us.apache.org/repos/asf/falcon/blob/1dd30181/docs/src/site/twiki/FalconCLI.twiki ---------------------------------------------------------------------- diff --git a/docs/src/site/twiki/FalconCLI.twiki b/docs/src/site/twiki/FalconCLI.twiki index 22ffbe7..0e42ae2 100644 --- a/docs/src/site/twiki/FalconCLI.twiki +++ b/docs/src/site/twiki/FalconCLI.twiki @@ -51,7 +51,8 @@ Entities of a particular type can be listed with list sub-command. Usage: $FALCON_HOME/bin/falcon entity -type [cluster|feed|process] -list -Optional Args : -fields <<field1,field2>> -filterBy <<field1:value1,field2:value2>> -tags <<tagkey=tagvalue,tagkey=tagvalue>> +Optional Args : -fields <<field1,field2>> -filterBy <<field1:value1,field2:value2>> +-tags <<tagkey=tagvalue,tagkey=tagvalue>> -nameseq <<namesubsequence>> -orderBy <<field>> -sortOrder <<sortOrder>> -offset 0 -numResults 10 <a href="./Restapi/EntityList.html">Optional params described here.</a> http://git-wip-us.apache.org/repos/asf/falcon/blob/1dd30181/docs/src/site/twiki/restapi/EntityList.twiki ---------------------------------------------------------------------- diff --git a/docs/src/site/twiki/restapi/EntityList.twiki b/docs/src/site/twiki/restapi/EntityList.twiki index 5e11691..08dd304 100644 --- a/docs/src/site/twiki/restapi/EntityList.twiki +++ b/docs/src/site/twiki/restapi/EntityList.twiki @@ -11,9 +11,10 @@ Get list of the entities. * :entity-type Valid options are cluster, feed or process. * fields <optional param> Fields of entity that the user wants to view, separated by commas. * Valid options are STATUS, TAGS, PIPELINES. - * pattern <optional param> Find string which contains this sequence of characters. Example: pattern=abc - * matching is case insensitive. - * For example a pattern mhs will match a process named New-My-Hourly-Summary. + * nameseq <optional param> Subsequence of entity name. Not case sensitive. + * The entity name needs to contain all the characters in the subsequence in the same order. + * Example 1: "sample1" will match the entity named "SampleFeed1-2". + * Example 2: "mhs" will match the entity named "New-My-Hourly-Summary". * filterBy <optional param> Filter results by list of field:value pairs. Example: filterBy=STATUS:RUNNING,PIPELINES:clickLogs * Supported filter fields are NAME, STATUS, PIPELINES, CLUSTER. * Query will do an AND among filterBy fields. @@ -96,3 +97,29 @@ GET http://localhost:15000/api/entities/list/process?filterBy=STATUS:RUNNING,PIP ] } </verbatim> + +---+++ Rest Call +<verbatim> +GET http://localhost:15000/api/entities/list/feed?nameseq=samplebill&numResults=2&offset=1&fields=status,clusters,tags +</verbatim> +---+++ Result +<verbatim> +{ + "entityâ:[ + { + "type":"FEEDâ, + "name":"SampleUSHealthBillâ, + "status":"SUBMITTEDâ, + "tagsâ: {"tag":["related=ushealthcare","department=billingDepartment"]}, + "clusters": {"cluster":["SampleCluster1","primaryClusterâ]} + }, + { + "type":"FEEDâ, + "name":"SampleHealthBillâ, + "status":"SUBMITTEDâ, + "tagsâ: {"tag":["related=healthcare","department=billingDepartment"]}, + "clusters": {"cluster":"primaryClusterâ} + } + ] +} +</verbatim> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/falcon/blob/1dd30181/prism/src/main/java/org/apache/falcon/resource/AbstractEntityManager.java ---------------------------------------------------------------------- diff --git a/prism/src/main/java/org/apache/falcon/resource/AbstractEntityManager.java b/prism/src/main/java/org/apache/falcon/resource/AbstractEntityManager.java index 1e2fc82..25cb312 100644 --- a/prism/src/main/java/org/apache/falcon/resource/AbstractEntityManager.java +++ b/prism/src/main/java/org/apache/falcon/resource/AbstractEntityManager.java @@ -577,14 +577,14 @@ public abstract class AbstractEntityManager { */ public EntityList getEntityList(String type, String fieldStr, String filterBy, String filterTags, String orderBy, String sortOrder, Integer offset, Integer resultsPerPage, - String pattern) { + String nameseq) { HashSet<String> fields = new HashSet<String>(Arrays.asList(fieldStr.toLowerCase().split(","))); validateEntityFilterByClause(filterBy); List<Entity> entities; try { entities = getEntities(type, "", "", "", filterBy, filterTags, orderBy, sortOrder, offset, - resultsPerPage, pattern); + resultsPerPage, nameseq); } catch (Exception e) { LOG.error("Failed to get entity list", e); throw FalconWebException.newException(e, Response.Status.BAD_REQUEST); @@ -609,7 +609,7 @@ public abstract class AbstractEntityManager { protected List<Entity> getEntities(String type, String startDate, String endDate, String cluster, String filterBy, String filterTags, String orderBy, String sortOrder, int offset, - int resultsPerPage, String pattern) throws FalconException, IOException { + int resultsPerPage, String nameseq) throws FalconException, IOException { final Map<String, String> filterByFieldsValues = getFilterByFieldsValues(filterBy); final List<String> filterByTags = getFilterByTags(filterTags); @@ -648,7 +648,7 @@ public abstract class AbstractEntityManager { continue; } - if (StringUtils.isNotBlank(pattern) && !fuzzySearch(entity.getName(), pattern)) { + if (StringUtils.isNotBlank(nameseq) && !fuzzySearch(entity.getName(), nameseq)) { continue; } entities.add(entity); @@ -665,16 +665,16 @@ public abstract class AbstractEntityManager { } //RESUME CHECKSTYLE CHECK ParameterNumberCheck - boolean fuzzySearch(String enityName, String pattern) { - int currentIndex = 0; // current index in pattern which is to be matched - char[] searchPattern = pattern.toLowerCase().toCharArray(); + boolean fuzzySearch(String enityName, String nameseq) { + int currentIndex = 0; // current index in name subsequence which is to be matched + char[] nameseqArray = nameseq.toLowerCase().toCharArray(); String name = enityName.toLowerCase(); for (Character c : name.toCharArray()) { - if (currentIndex < searchPattern.length && c == searchPattern[currentIndex]) { + if (currentIndex < nameseqArray.length && c == nameseqArray[currentIndex]) { currentIndex++; } - if (currentIndex == searchPattern.length) { + if (currentIndex == nameseqArray.length) { return true; } } http://git-wip-us.apache.org/repos/asf/falcon/blob/1dd30181/prism/src/main/java/org/apache/falcon/resource/proxy/SchedulableEntityManagerProxy.java ---------------------------------------------------------------------- diff --git a/prism/src/main/java/org/apache/falcon/resource/proxy/SchedulableEntityManagerProxy.java b/prism/src/main/java/org/apache/falcon/resource/proxy/SchedulableEntityManagerProxy.java index 8bfc099..6ccfd09 100644 --- a/prism/src/main/java/org/apache/falcon/resource/proxy/SchedulableEntityManagerProxy.java +++ b/prism/src/main/java/org/apache/falcon/resource/proxy/SchedulableEntityManagerProxy.java @@ -460,8 +460,8 @@ public class SchedulableEntityManagerProxy extends AbstractSchedulableEntityMana @DefaultValue("0") @QueryParam("offset") Integer offset, @DefaultValue(DEFAULT_NUM_RESULTS) @QueryParam("numResults") Integer resultsPerPage, - @QueryParam("pattern") String pattern) { - return super.getEntityList(type, fields, filterBy, tags, orderBy, sortOrder, offset, resultsPerPage, pattern); + @QueryParam("nameseq") String nameseq) { + return super.getEntityList(type, fields, filterBy, tags, orderBy, sortOrder, offset, resultsPerPage, nameseq); } @GET http://git-wip-us.apache.org/repos/asf/falcon/blob/1dd30181/webapp/src/main/java/org/apache/falcon/resource/SchedulableEntityManager.java ---------------------------------------------------------------------- diff --git a/webapp/src/main/java/org/apache/falcon/resource/SchedulableEntityManager.java b/webapp/src/main/java/org/apache/falcon/resource/SchedulableEntityManager.java index 4740c71..82a622c 100644 --- a/webapp/src/main/java/org/apache/falcon/resource/SchedulableEntityManager.java +++ b/webapp/src/main/java/org/apache/falcon/resource/SchedulableEntityManager.java @@ -68,8 +68,8 @@ public class SchedulableEntityManager extends AbstractSchedulableEntityManager { @DefaultValue("0") @QueryParam("offset") Integer offset, @DefaultValue(DEFAULT_NUM_RESULTS) @QueryParam("numResults") Integer resultsPerPage, - @QueryParam("pattern") String pattern) { - return super.getEntityList(type, fields, filterBy, tags, orderBy, sortOrder, offset, resultsPerPage, pattern); + @QueryParam("nameseq") String nameseq) { + return super.getEntityList(type, fields, filterBy, tags, orderBy, sortOrder, offset, resultsPerPage, nameseq); } @GET http://git-wip-us.apache.org/repos/asf/falcon/blob/1dd30181/webapp/src/test/java/org/apache/falcon/cli/FalconCLIIT.java ---------------------------------------------------------------------- diff --git a/webapp/src/test/java/org/apache/falcon/cli/FalconCLIIT.java b/webapp/src/test/java/org/apache/falcon/cli/FalconCLIIT.java index bfad011..dd14e9c 100644 --- a/webapp/src/test/java/org/apache/falcon/cli/FalconCLIIT.java +++ b/webapp/src/test/java/org/apache/falcon/cli/FalconCLIIT.java @@ -558,7 +558,7 @@ public class FalconCLIIT { Assert.assertEquals(executeWithURL("entity -list -type process -fields status " + " -filterBy STATUS:SUBMITTED,TYPE:process -orderBy name " - + " -sortOrder asc -offset 1 -numResults 1 -pattern abc"), 0); + + " -sortOrder asc -offset 1 -numResults 1 -nameseq abc"), 0); Assert.assertEquals(executeWithURL("entity -list -type process -fields status " + " -filterBy STATUS:SUBMITTED,TYPE:process -orderBy name "
