You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@falcon.apache.org by ba...@apache.org on 2016/04/22 00:06:10 UTC
falcon git commit: FALCON-1790 CLI support for instance search
Repository: falcon
Updated Branches:
refs/heads/master b34069b7f -> c2a802b40
FALCON-1790 CLI support for instance search
Tested CLI support. Also added documentation for both REST api and CLI.
Author: yzheng-hortonworks <yz...@hortonworks.com>
Reviewers: "Praveen Adlakha <ad...@gmail.com>, Balu Vellanki <ba...@apache.org>"
Closes #110 from yzheng-hortonworks/FALCON-1790
Project: http://git-wip-us.apache.org/repos/asf/falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/falcon/commit/c2a802b4
Tree: http://git-wip-us.apache.org/repos/asf/falcon/tree/c2a802b4
Diff: http://git-wip-us.apache.org/repos/asf/falcon/diff/c2a802b4
Branch: refs/heads/master
Commit: c2a802b40efa55441b2be218a6d44c09e5adaa72
Parents: b34069b
Author: yzheng-hortonworks <yz...@hortonworks.com>
Authored: Thu Apr 21 15:06:05 2016 -0700
Committer: bvellanki <bv...@hortonworks.com>
Committed: Thu Apr 21 15:06:05 2016 -0700
----------------------------------------------------------------------
.../java/org/apache/falcon/cli/FalconCLI.java | 2 +-
.../org/apache/falcon/cli/FalconEntityCLI.java | 10 +-
.../apache/falcon/cli/FalconInstanceCLI.java | 22 ++++-
.../org/apache/falcon/FalconCLIConstants.java | 3 +
.../org/apache/falcon/client/FalconClient.java | 23 ++++-
docs/src/site/twiki/falconcli/FalconCLI.twiki | 3 +-
.../site/twiki/falconcli/SearchInstance.twiki | 17 ++++
.../src/site/twiki/restapi/InstanceSearch.twiki | 97 ++++++++++++++++++++
.../java/org/apache/falcon/cli/FalconCLIIT.java | 7 +-
.../org/apache/falcon/cli/FalconCLISmokeIT.java | 2 +
10 files changed, 173 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/falcon/blob/c2a802b4/cli/src/main/java/org/apache/falcon/cli/FalconCLI.java
----------------------------------------------------------------------
diff --git a/cli/src/main/java/org/apache/falcon/cli/FalconCLI.java b/cli/src/main/java/org/apache/falcon/cli/FalconCLI.java
index c1b9d8c..b6f4290 100644
--- a/cli/src/main/java/org/apache/falcon/cli/FalconCLI.java
+++ b/cli/src/main/java/org/apache/falcon/cli/FalconCLI.java
@@ -98,7 +98,7 @@ public class FalconCLI {
"Entity operations like submit, suspend, resume, delete, status, definition, submitAndSchedule",
entityCLI.createEntityOptions(), false);
parser.addCommand(FalconCLIConstants.INSTANCE_CMD, "",
- "Process instances operations like running, status, kill, suspend, resume, rerun, logs",
+ "Process instances operations like running, status, kill, suspend, resume, rerun, logs, search",
instanceCLI.createInstanceOptions(), false);
parser.addCommand(FalconCLIConstants.METADATA_CMD, "", "Metadata operations like list, relations",
metadataCLI.createMetadataOptions(), true);
http://git-wip-us.apache.org/repos/asf/falcon/blob/c2a802b4/cli/src/main/java/org/apache/falcon/cli/FalconEntityCLI.java
----------------------------------------------------------------------
diff --git a/cli/src/main/java/org/apache/falcon/cli/FalconEntityCLI.java b/cli/src/main/java/org/apache/falcon/cli/FalconEntityCLI.java
index fa71d67..5c3d2a6 100644
--- a/cli/src/main/java/org/apache/falcon/cli/FalconEntityCLI.java
+++ b/cli/src/main/java/org/apache/falcon/cli/FalconEntityCLI.java
@@ -58,8 +58,6 @@ public class FalconEntityCLI extends FalconCLI {
private static final String FIELDS_OPT = "fields";
private static final String TAGS_OPT = "tags";
private static final String NUM_INSTANCES_OPT = "numInstances";
- private static final String NAMESEQ_OPT = "nameseq";
- private static final String TAGKEYS_OPT = "tagkeys";
private static final String SHOWSCHEDULER_OPT = "showScheduler";
public FalconEntityCLI() throws Exception {
@@ -135,8 +133,8 @@ public class FalconEntityCLI extends FalconCLI {
Option filterBy = new Option(FalconCLIConstants.FILTER_BY_OPT, true,
"Filter returned entities by the specified status");
Option filterTags = new Option(TAGS_OPT, true, "Filter returned entities by the specified tags");
- Option nameSubsequence = new Option(NAMESEQ_OPT, true, "Subsequence of entity name");
- Option tagKeywords = new Option(TAGKEYS_OPT, true, "Keywords in tags");
+ Option nameSubsequence = new Option(FalconCLIConstants.NAMESEQ_OPT, true, "Subsequence of entity name");
+ Option tagKeywords = new Option(FalconCLIConstants.TAGKEYS_OPT, true, "Keywords in tags");
Option orderBy = new Option(FalconCLIConstants.ORDER_BY_OPT, true,
"Order returned entities by this field");
Option sortOrder = new Option(FalconCLIConstants.SORT_ORDER_OPT, true, "asc or desc order for results");
@@ -203,8 +201,8 @@ public class FalconEntityCLI extends FalconCLI {
String sortOrder = commandLine.getOptionValue(FalconCLIConstants.SORT_ORDER_OPT);
String filterBy = commandLine.getOptionValue(FalconCLIConstants.FILTER_BY_OPT);
String filterTags = commandLine.getOptionValue(TAGS_OPT);
- String nameSubsequence = commandLine.getOptionValue(NAMESEQ_OPT);
- String tagKeywords = commandLine.getOptionValue(TAGKEYS_OPT);
+ String nameSubsequence = commandLine.getOptionValue(FalconCLIConstants.NAMESEQ_OPT);
+ String tagKeywords = commandLine.getOptionValue(FalconCLIConstants.TAGKEYS_OPT);
String fields = commandLine.getOptionValue(FIELDS_OPT);
String feedInstancePath = commandLine.getOptionValue(PATH_OPT);
Integer offset = parseIntegerInput(commandLine.getOptionValue(FalconCLIConstants.OFFSET_OPT), 0, "offset");
http://git-wip-us.apache.org/repos/asf/falcon/blob/c2a802b4/cli/src/main/java/org/apache/falcon/cli/FalconInstanceCLI.java
----------------------------------------------------------------------
diff --git a/cli/src/main/java/org/apache/falcon/cli/FalconInstanceCLI.java b/cli/src/main/java/org/apache/falcon/cli/FalconInstanceCLI.java
index afbba12..43482b3 100644
--- a/cli/src/main/java/org/apache/falcon/cli/FalconInstanceCLI.java
+++ b/cli/src/main/java/org/apache/falcon/cli/FalconInstanceCLI.java
@@ -46,6 +46,7 @@ public class FalconInstanceCLI extends FalconCLI {
private static final String KILL_OPT = "kill";
private static final String RERUN_OPT = "rerun";
private static final String LOG_OPT = "logs";
+ private static final String SEARCH_OPT = "search";
private static final String ALL_ATTEMPTS = "allAttempts";
private static final String RUNID_OPT = "runid";
private static final String CLUSTERS_OPT = "clusters";
@@ -93,6 +94,8 @@ public class FalconInstanceCLI extends FalconCLI {
"Displays dependent instances for a specified instance.");
Option triage = new Option(TRIAGE_OPT, false,
"Triage a feed or process instance and find the failures in it's lineage.");
+ Option search = new Option(SEARCH_OPT, false,
+ "Search instances with filtering criteria on the entity, instance time and status.");
OptionGroup group = new OptionGroup();
group.addOption(running);
@@ -109,6 +112,7 @@ public class FalconInstanceCLI extends FalconCLI {
group.addOption(listing);
group.addOption(dependency);
group.addOption(triage);
+ group.addOption(search);
Option url = new Option(FalconCLIConstants.URL_OPTION, true, "Falcon URL");
Option start = new Option(FalconCLIConstants.START_OPT, true,
@@ -151,9 +155,10 @@ public class FalconInstanceCLI extends FalconCLI {
Option doAs = new Option(FalconCLIConstants.DO_AS_OPT, true, "doAs user");
Option debug = new Option(FalconCLIConstants.DEBUG_OPTION, false, "Use debug mode to see"
+ " debugging statements on stdout");
-
Option instanceTime = new Option(INSTANCE_TIME_OPT, true, "Time for an instance");
-
+ Option instanceStatus = new Option(FalconCLIConstants.INSTANCE_STATUS_OPT, true, "Instance status");
+ Option nameSubsequence = new Option(FalconCLIConstants.NAMESEQ_OPT, true, "Subsequence of entity name");
+ Option tagKeywords = new Option(FalconCLIConstants.TAGKEYS_OPT, true, "Keywords in tags");
Option allAttempts = new Option(ALL_ATTEMPTS, false, "To get all attempts of corresponding instances");
instanceOptions.addOption(url);
@@ -177,6 +182,9 @@ public class FalconInstanceCLI extends FalconCLI {
instanceOptions.addOption(doAs);
instanceOptions.addOption(debug);
instanceOptions.addOption(instanceTime);
+ instanceOptions.addOption(instanceStatus);
+ instanceOptions.addOption(nameSubsequence);
+ instanceOptions.addOption(tagKeywords);
instanceOptions.addOption(allAttempts);
return instanceOptions;
@@ -194,6 +202,9 @@ public class FalconInstanceCLI extends FalconCLI {
String instanceTime = commandLine.getOptionValue(INSTANCE_TIME_OPT);
String start = commandLine.getOptionValue(FalconCLIConstants.START_OPT);
String end = commandLine.getOptionValue(FalconCLIConstants.END_OPT);
+ String status = commandLine.getOptionValue(FalconCLIConstants.INSTANCE_STATUS_OPT);
+ String nameSubsequence = commandLine.getOptionValue(FalconCLIConstants.NAMESEQ_OPT);
+ String tagKeywords = commandLine.getOptionValue(FalconCLIConstants.TAGKEYS_OPT);
String filePath = commandLine.getOptionValue(FalconCLIConstants.FILE_PATH_OPT);
String runId = commandLine.getOptionValue(RUNID_OPT);
String colo = commandLine.getOptionValue(FalconCLIConstants.COLO_OPT);
@@ -211,7 +222,9 @@ public class FalconInstanceCLI extends FalconCLI {
colo = getColo(colo);
String instanceAction = "instance";
validateSortOrder(sortOrder);
- validateInstanceCommands(optionsList, entity, type, colo);
+ if (!optionsList.contains(SEARCH_OPT)) {
+ validateInstanceCommands(optionsList, entity, type, colo);
+ }
if (optionsList.contains(TRIAGE_OPT)) {
validateNotEmpty(colo, FalconCLIConstants.COLO_OPT);
@@ -280,6 +293,9 @@ public class FalconInstanceCLI extends FalconCLI {
start, colo, lifeCycles, doAsUser));
} else if (optionsList.contains(LISTING_OPT)) {
result = ResponseHelper.getString(client.getFeedInstanceListing(type, entity, start, end, colo, doAsUser));
+ } else if (optionsList.contains(SEARCH_OPT)) {
+ result = ResponseHelper.getString(client.searchInstances(
+ type, nameSubsequence, tagKeywords, start, end, status, orderBy, offset, numResults));
} else {
throw new FalconCLIException("Invalid command");
}
http://git-wip-us.apache.org/repos/asf/falcon/blob/c2a802b4/client/src/main/java/org/apache/falcon/FalconCLIConstants.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/falcon/FalconCLIConstants.java b/client/src/main/java/org/apache/falcon/FalconCLIConstants.java
index 5f1fb3c..bfa1748 100644
--- a/client/src/main/java/org/apache/falcon/FalconCLIConstants.java
+++ b/client/src/main/java/org/apache/falcon/FalconCLIConstants.java
@@ -52,6 +52,9 @@ public final class FalconCLIConstants {
public static final String DEPENDENCY_OPT = "dependency";
public static final String LIST_OPT = "list";
public static final String SKIPDRYRUN_OPT = "skipDryRun";
+ public static final String INSTANCE_STATUS_OPT = "instanceStatus";
+ public static final String NAMESEQ_OPT = "nameseq";
+ public static final String TAGKEYS_OPT = "tagkeys";
public static final String FILTER_BY_OPT = "filterBy";
public static final String ORDER_BY_OPT = "orderBy";
public static final String SORT_ORDER_OPT = "sortOrder";
http://git-wip-us.apache.org/repos/asf/falcon/blob/c2a802b4/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 02908d9..e8ff6f1 100644
--- a/client/src/main/java/org/apache/falcon/client/FalconClient.java
+++ b/client/src/main/java/org/apache/falcon/client/FalconClient.java
@@ -95,6 +95,7 @@ public class FalconClient extends AbstractFalconClient {
public static final String FORCE = "force";
public static final String SHOW_SCHEDULER = "showScheduler";
public static final String ENTITY_NAME = "name";
+ public static final String ENTITY_TYPE = "type";
public static final String SKIP_DRYRUN = "skipDryRun";
public static final String FILTER_BY = "filterBy";
public static final String ORDER_BY = "orderBy";
@@ -104,6 +105,7 @@ public class FalconClient extends AbstractFalconClient {
public static final String START = "start";
public static final String END = "end";
public static final String INSTANCE_TIME = "instanceTime";
+ public static final String INSTANCE_STATUS = "instanceStatus";
public static final String PROPERTIES = "properties";
private static final String FIELDS = "fields";
private static final String NAME_SUBSEQUENCE = "nameseq";
@@ -297,7 +299,8 @@ public class FalconClient extends AbstractFalconClient {
PARAMS("api/instance/params/", HttpMethod.GET, MediaType.APPLICATION_JSON),
DEPENDENCY("api/instance/dependencies/", HttpMethod.GET, MediaType.APPLICATION_JSON),
TRIAGE("api/instance/triage/", HttpMethod.GET, MediaType.APPLICATION_JSON),
- LISTING("api/instance/listing/", HttpMethod.GET, MediaType.APPLICATION_JSON);
+ LISTING("api/instance/listing/", HttpMethod.GET, MediaType.APPLICATION_JSON),
+ SEARCH("api/instance/search/", HttpMethod.GET, MediaType.APPLICATION_JSON);
private String path;
private String method;
@@ -560,6 +563,7 @@ public class FalconClient extends AbstractFalconClient {
return getResponse(InstancesSummaryResult.class, clientResponse);
}
+
public FeedInstanceResult getFeedListing(String type, String entity, String start,
String end, String colo, String doAsUser) throws FalconCLIException {
ClientResponse clientResponse = new ResourceBuilder().path(Instances.KILL.path, type, entity)
@@ -568,6 +572,23 @@ public class FalconClient extends AbstractFalconClient {
return getResponse(FeedInstanceResult.class, clientResponse);
}
+ public InstancesResult searchInstances(String type, String nameSubsequence, String tagKeywords,
+ String start, String end, String status, String orderBy,
+ Integer offset, Integer numResults) throws FalconCLIException {
+ ClientResponse clientResponse = new ResourceBuilder().path(Instances.SEARCH.path)
+ .addQueryParam(ENTITY_TYPE, type)
+ .addQueryParam(NAME_SUBSEQUENCE, nameSubsequence)
+ .addQueryParam(TAG_KEYWORDS, tagKeywords)
+ .addQueryParam(START, start)
+ .addQueryParam(END, end)
+ .addQueryParam(INSTANCE_STATUS, status)
+ .addQueryParam(ORDER_BY, orderBy)
+ .addQueryParam(OFFSET, offset)
+ .addQueryParam(NUM_RESULTS, numResults)
+ .call(Instances.SEARCH);
+ return getResponse(InstancesResult.class, clientResponse);
+ }
+
public InstancesResult killInstances(String type, String entity, String start,
String end, String colo, String clusters,
String sourceClusters, List<LifeCycle> lifeCycles,
http://git-wip-us.apache.org/repos/asf/falcon/blob/c2a802b4/docs/src/site/twiki/falconcli/FalconCLI.twiki
----------------------------------------------------------------------
diff --git a/docs/src/site/twiki/falconcli/FalconCLI.twiki b/docs/src/site/twiki/falconcli/FalconCLI.twiki
index 0c0082f..2290569 100644
--- a/docs/src/site/twiki/falconcli/FalconCLI.twiki
+++ b/docs/src/site/twiki/falconcli/FalconCLI.twiki
@@ -68,7 +68,8 @@ $FALCON_HOME/bin/falcon entity -submit -type cluster -file /cluster/definition.x
| [[ContinueInstance][Continue]] | Continue the failed workflow instances |
| [[RerunInstance][Rerun]] | Rerun instances of specified process |
| [[ResumeInstance][Resume]] | Resume instance of specified process from suspended state |
-| [[StatusInstance][Status]] | Gets the status of entity |
+| [[SearchInstance][Search]] | Search instances |
+| [[StatusInstance][Status]] | Gets the status of instances |
| [[ListInstance][List]] | Gets single or multiple instances |
| [[SummaryInstance][Summary]] | Gets consolidated status of the instances between the specified time period |
| [[RunningInstance][Running]] | Gets running instances of the mentioned process |
http://git-wip-us.apache.org/repos/asf/falcon/blob/c2a802b4/docs/src/site/twiki/falconcli/SearchInstance.twiki
----------------------------------------------------------------------
diff --git a/docs/src/site/twiki/falconcli/SearchInstance.twiki b/docs/src/site/twiki/falconcli/SearchInstance.twiki
new file mode 100644
index 0000000..35cac74
--- /dev/null
+++ b/docs/src/site/twiki/falconcli/SearchInstance.twiki
@@ -0,0 +1,17 @@
+---+++Search
+
+[[CommonCLI][Common CLI Options]]
+
+Search option via CLI can be used to get instances that meet search criteria, e.g. nominal time, instance status, entity name subsequence, entity tag, etc.
+Instance name and status are listed in the output. More instance properties will be added to the output in the future (e.g. log url, running time).
+Example usage include: search of instances of all entities with the same tag; search of all current running instances.
+
+Usage:
+$FALCON_HOME/bin/falcon instance -search
+
+Optional Args : -type <<[feed|process|datasource],[feed|process|datasource]>>
+-nameseq <<namesubsequence>> -tagkeys <<tagkeyword1,tagkeyword2>>
+-instanceStatus <<status>> -start "yyyy-MM-dd'T'HH:mm'Z'" -end "yyyy-MM-dd'T'HH:mm'Z'"
+-orderBy <<field>> -offset 0 -numResults 10
+
+<a href="../restapi/InstanceSearch.html">Optional params and examples described here.</a>
http://git-wip-us.apache.org/repos/asf/falcon/blob/c2a802b4/docs/src/site/twiki/restapi/InstanceSearch.twiki
----------------------------------------------------------------------
diff --git a/docs/src/site/twiki/restapi/InstanceSearch.twiki b/docs/src/site/twiki/restapi/InstanceSearch.twiki
new file mode 100644
index 0000000..4744240
--- /dev/null
+++ b/docs/src/site/twiki/restapi/InstanceSearch.twiki
@@ -0,0 +1,97 @@
+---++ GET /api/instance/search
+ * <a href="#Description">Description</a>
+ * <a href="#Parameters">Parameters</a>
+ * <a href="#Results">Results</a>
+ * <a href="#Examples">Examples</a>
+
+---++ Description
+Get the list of instances that meet search criteria.
+
+---++ Parameters
+ * :type <optional param> Comma-separated entity types. Valid entity types are feed, process or datasource.
+ * 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".
+ * tagkeys <optional param> Keywords in tags, separated by comma. Not case sensitive.
+ * The returned entities will have tags that match all the tag keywords.
+ * instanceStatus <optional param> Valid options are RUNNING, SUCCEEDED, FAILED, WAITING, SUSPENDED, KILLED, TIMEOUT.
+ * start <optional param> Show instances from this nominal time. Format: yyyy-MM-dd'T'HH:mm'Z'.
+ * By default, it is set to (end - (10 * entityFrequency)).
+ * end <optional param> Show instances up to this nominal time. Format: yyyy-MM-dd'T'HH:mm'Z'.
+ * Default is set to now.
+ * orderBy <optional param> Field by which results should be ordered. Sorted by descending order.
+ * If not specified, instances of the same entity will be listed together in the result.
+ * Current valid option: status. Coming soon: sorting by name, nominal time, running time.
+ * offset <optional param> Show results from the offset, used for pagination. Defaults to 0.
+ * numResults <optional param> Number of results to show per request, used for pagination.
+ * Only integers > 0 are valid. Default is 10.
+ * doAs <optional query param> allows the current user to impersonate the user passed in doAs.
+
+---++ Results
+A list of instances.
+
+---++ Examples
+---+++ Rest Call
+<verbatim>
+GET http://localhost:15000/api/instance/search?nameseq=usbill&start=2012-04-03T00:00Z
+</verbatim>
+---+++ Result
+<verbatim>
+{
+ "instances": [
+ {
+ “name":"SampleUSHealthBill”,
+ “type":"FEED”,
+ “tags”: {"tag":["related=ushealthcare","department=billingDepartment"]},
+ “nominalTime": "2012-04-03T07:00Z"
+ "cluster": "primary-cluster",
+ "status": "SUCCEEDED",
+ "logFile": "http:\/\/localhost:11000\/oozie?job=0000070-131021115933395-oozie-rgau-W",
+ "startTime": "2013-10-21T14:39:56-07:00",
+ "endTime": "2013-10-21T14:40:26-07:00",
+ }
+ ],
+ "requestId": "default\/e15bb378-d09f-4911-9df2-5334a45153d2\n",
+ "message": "Instances Search Results",
+ "status": "SUCCEEDED”
+}
+</verbatim>
+
+---+++ Rest Call
+<verbatim>
+GET http://localhost:15000/api/instance/search?nameseq=samplebill&tagkeys=billing,healthcare&start=2012-04-03T00:00Z&instanceStatus=succeeded&orderBy=nominalTime&offset=2&numResults=2
+</verbatim>
+---+++ Result
+<verbatim>
+ {
+ "instances": [
+ {
+ "name":"SampleHealthBill",
+ "type":"PROCESS",
+ "tags”: {"tag":["related=healthcare","department=billingDepartment"]},
+ “nominalTime": "2012-04-03T08:00Z"
+ "cluster": "primary-cluster",
+ "status": "SUCCEEDED",
+ "logFile": "http:\/\/localhost:11000\/oozie?job=0000070-131021115933397-oozie-rgau-W",
+ "startTime": "2013-10-21T14:41:56-07:00",
+ "endTime": "2013-10-21T14:42:26-07:00",
+ },
+ {
+ "name":"SampleUSHealthBill",
+ "type":"FEED”,
+ "tags": {"tag":["related=ushealthcare","department=billingDepartment"]},
+ “nominalTime": "2012-04-03T07:00Z"
+ "cluster": "primary-cluster",
+ "status": "SUCCEEDED",
+ "logFile": "http:\/\/localhost:11000\/oozie?job=0000070-131021115933395-oozie-rgau-W",
+ "startTime": "2013-10-21T14:39:56-07:00",
+ "endTime": "2013-10-21T14:40:26-07:00",
+ },
+ ],
+
+ "requestId": "default\/e15bb378-d09f-4911-9df2-5334a45153d2\n",
+ "message": "Instances Search Results",
+ "status": "SUCCEEDED”
+}
+</verbatim>
http://git-wip-us.apache.org/repos/asf/falcon/blob/c2a802b4/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 5ce8893..4f72d82 100644
--- a/webapp/src/test/java/org/apache/falcon/cli/FalconCLIIT.java
+++ b/webapp/src/test/java/org/apache/falcon/cli/FalconCLIIT.java
@@ -481,7 +481,7 @@ public class FalconCLIIT {
}
- public void testInstanceRunningAndSummaryCommands() throws Exception {
+ public void testInstanceRunningAndSearchSummaryCommands() throws Exception {
TestContext context = new TestContext();
Map<String, String> overlay = context.getUniqueOverlay();
submitTestFiles(context, overlay);
@@ -495,9 +495,14 @@ public class FalconCLIIT {
Assert.assertEquals(executeWithURL("instance -status -type feed -name " + overlay.get("outputFeedName")
+ " -start " + START_INSTANCE), 0);
+ Assert.assertEquals(executeWithURL("instance -search"), 0);
+
Assert.assertEquals(executeWithURL("instance -running -type process -name " + overlay.get("processName")), 0);
//with doAs
+ Assert.assertEquals(executeWithURL(
+ "instance -search -type process -instanceStatus RUNNING -doAs " + FalconTestUtil.TEST_USER_2), 0);
+
Assert.assertEquals(executeWithURL("instance -running -type process -doAs " + FalconTestUtil.TEST_USER_2
+ " -name " + overlay.get("processName")), 0);
http://git-wip-us.apache.org/repos/asf/falcon/blob/c2a802b4/webapp/src/test/java/org/apache/falcon/cli/FalconCLISmokeIT.java
----------------------------------------------------------------------
diff --git a/webapp/src/test/java/org/apache/falcon/cli/FalconCLISmokeIT.java b/webapp/src/test/java/org/apache/falcon/cli/FalconCLISmokeIT.java
index 8a5c440..2ce1aaf 100644
--- a/webapp/src/test/java/org/apache/falcon/cli/FalconCLISmokeIT.java
+++ b/webapp/src/test/java/org/apache/falcon/cli/FalconCLISmokeIT.java
@@ -100,6 +100,8 @@ public class FalconCLISmokeIT {
Assert.assertEquals(executeWithURL("instance -status -type feed -name "
+ overlay.get("outputFeedName") + " -start " + START_INSTANCE), 0);
Assert.assertEquals(executeWithURL("instance -running -type process -name " + overlay.get("processName")), 0);
+ Assert.assertEquals(executeWithURL("instance -search"), 0);
+ Assert.assertEquals(executeWithURL("instance -search -type process -instanceStatus RUNNING"), 0);
}
private int executeWithURL(String command) throws Exception {