You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by pr...@apache.org on 2015/12/10 07:50:17 UTC

lens git commit: LENS-882: Provide option from CLI to list queries by driver

Repository: lens
Updated Branches:
  refs/heads/master 22e202208 -> 0e4c18cb9


LENS-882: Provide option from CLI to list queries by driver


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

Branch: refs/heads/master
Commit: 0e4c18cb917015b469ca43d30d7e2196d8f64789
Parents: 22e2022
Author: Deepak Barr <de...@gmail.com>
Authored: Thu Dec 10 12:16:11 2015 +0530
Committer: Rajat Khandelwal <ra...@gmail.com>
Committed: Thu Dec 10 12:16:11 2015 +0530

----------------------------------------------------------------------
 .../lens/cli/commands/LensQueryCommands.java    |  4 ++-
 .../apache/lens/cli/TestLensQueryCommands.java  | 26 +++++++++++++-------
 .../java/org/apache/lens/client/LensClient.java |  5 ++--
 .../org/apache/lens/client/LensStatement.java   |  6 +++--
 src/site/apt/user/cli.apt                       |  2 +-
 5 files changed, 28 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lens/blob/0e4c18cb/lens-cli/src/main/java/org/apache/lens/cli/commands/LensQueryCommands.java
----------------------------------------------------------------------
diff --git a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensQueryCommands.java b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensQueryCommands.java
index fe9b84d..e3c08ff 100644
--- a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensQueryCommands.java
+++ b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensQueryCommands.java
@@ -218,6 +218,7 @@ public class LensQueryCommands extends BaseLensCommand {
    * @param state     the state
    * @param queryName the query name
    * @param user      the user
+   * @param driver    the driver name
    * @param fromDate  the from date
    * @param toDate    the to date
    * @return the all queries
@@ -229,11 +230,12 @@ public class LensQueryCommands extends BaseLensCommand {
     @CliOption(key = {"state"}, mandatory = false, help = "<query-status>") String state,
     @CliOption(key = {"name"}, mandatory = false, help = "<query-name>") String queryName,
     @CliOption(key = {"user"}, mandatory = false, help = "<user-who-submitted-query>") String user,
+    @CliOption(key = {"driver"}, mandatory = false, help = "<driver-where-query-ran>") String driver,
     @CliOption(key = {"fromDate"}, mandatory = false, unspecifiedDefaultValue = "-1", help
       = "<submission-time-is-after>") long fromDate,
     @CliOption(key = {"toDate"}, mandatory = false, unspecifiedDefaultValue = "" + Long.MAX_VALUE, help
       = "<submission-time-is-before>") long toDate) {
-    List<QueryHandle> handles = getClient().getQueries(state, queryName, user, fromDate, toDate);
+    List<QueryHandle> handles = getClient().getQueries(state, queryName, user, driver, fromDate, toDate);
     if (handles != null && !handles.isEmpty()) {
       return Joiner.on("\n").skipNulls().join(handles).concat("\n").concat("Total number of queries: "
         + handles.size());

http://git-wip-us.apache.org/repos/asf/lens/blob/0e4c18cb/lens-cli/src/test/java/org/apache/lens/cli/TestLensQueryCommands.java
----------------------------------------------------------------------
diff --git a/lens-cli/src/test/java/org/apache/lens/cli/TestLensQueryCommands.java b/lens-cli/src/test/java/org/apache/lens/cli/TestLensQueryCommands.java
index 48b3ebb..6ebfff7 100644
--- a/lens-cli/src/test/java/org/apache/lens/cli/TestLensQueryCommands.java
+++ b/lens-cli/src/test/java/org/apache/lens/cli/TestLensQueryCommands.java
@@ -230,7 +230,7 @@ public class TestLensQueryCommands extends LensCliApplicationTest {
     String qh = qCom.executeQuery(sql, true, "testQuery1");
     String user = qCom.getClient().getLensStatement(new QueryHandle(UUID.fromString(qh)))
         .getQuery().getSubmittedUser();
-    String result = qCom.getAllQueries("", "testQuery1", user, -1, Long.MAX_VALUE);
+    String result = qCom.getAllQueries("", "testQuery1", user, "", -1, Long.MAX_VALUE);
     // this is because previous query has run two query handle will be there
     assertTrue(result.contains(qh), result);
     assertTrue(result.contains("Total number of queries"));
@@ -249,7 +249,7 @@ public class TestLensQueryCommands extends LensCliApplicationTest {
     }
 
     // Check that query name searching is 'ilike'
-    String result2 = qCom.getAllQueries("", "query", "all", -1, Long.MAX_VALUE);
+    String result2 = qCom.getAllQueries("", "query", "all", "", -1, Long.MAX_VALUE);
     assertTrue(result2.contains(qh), result2);
 
     assertTrue(qCom.getStatus(qh).contains("Status : SUCCESSFUL"));
@@ -265,10 +265,10 @@ public class TestLensQueryCommands extends LensCliApplicationTest {
 
     // Kill query is not tested as there is no deterministic way of killing a query
 
-    result = qCom.getAllQueries("SUCCESSFUL", "", "all", -1, Long.MAX_VALUE);
+    result = qCom.getAllQueries("SUCCESSFUL", "", "all", "", -1, Long.MAX_VALUE);
     assertTrue(result.contains(qh), result);
 
-    result = qCom.getAllQueries("FAILED", "", "all", -1, Long.MAX_VALUE);
+    result = qCom.getAllQueries("FAILED", "", "all", "", -1, Long.MAX_VALUE);
     if (!result.contains("No queries")) {
       // Make sure valid query handles are returned
       String[] handles = StringUtils.split(result, "\n");
@@ -282,22 +282,30 @@ public class TestLensQueryCommands extends LensCliApplicationTest {
     String queryName = qCom.getClient().getLensStatement(new QueryHandle(UUID.fromString(qh))).getQuery()
             .getQueryName();
     assertTrue("testQuery1".equalsIgnoreCase(queryName), queryName);
-    result = qCom.getAllQueries("", "", "", submitTime, System.currentTimeMillis());
+    result = qCom.getAllQueries("", "", "", "", submitTime, System.currentTimeMillis());
     assertTrue(result.contains(qh), result);
 
-    result = qCom.getAllQueries("", "fooBar", "all", submitTime, System.currentTimeMillis());
+    result = qCom.getAllQueries("", "fooBar", "all", "", submitTime, System.currentTimeMillis());
     assertTrue(result.contains("No queries"), result);
 
-    result = qCom.getAllQueries("SUCCESSFUL", "", "all", submitTime, System.currentTimeMillis());
+    result = qCom.getAllQueries("SUCCESSFUL", "", "all", "", submitTime, System.currentTimeMillis());
     assertTrue(result.contains(qh));
 
-    result = qCom.getAllQueries("SUCCESSFUL", "", "all", submitTime - 5000, submitTime - 1);
+    result = qCom.getAllQueries("SUCCESSFUL", "", "all", "", submitTime - 5000, submitTime - 1);
     // should not give query since its not in the range
     assertFalse(result.contains(qh));
 
+    // Filters on driver
+    result = qCom.getAllQueries("SUCCESSFUL", "", "all", "hive/hive1", submitTime,
+      System.currentTimeMillis());
+    assertTrue(result.contains(qh));
+
+    result = qCom.getAllQueries("SUCCESSFUL", "", "all", "DummyDriver", submitTime, System.currentTimeMillis());
+    assertFalse(result.contains(qh));
+
     try {
       // Should fail with bad request since fromDate > toDate
-      result = qCom.getAllQueries("SUCCESSFUL", "", "all", submitTime + 5000, submitTime);
+      result = qCom.getAllQueries("SUCCESSFUL", "", "all", "", submitTime + 5000, submitTime);
       fail("Call should have failed with BadRequestException, instead got " + result);
     } catch (BadRequestException exc) {
       // pass

http://git-wip-us.apache.org/repos/asf/lens/blob/0e4c18cb/lens-client/src/main/java/org/apache/lens/client/LensClient.java
----------------------------------------------------------------------
diff --git a/lens-client/src/main/java/org/apache/lens/client/LensClient.java b/lens-client/src/main/java/org/apache/lens/client/LensClient.java
index 5fd04c4..8f197e4 100644
--- a/lens-client/src/main/java/org/apache/lens/client/LensClient.java
+++ b/lens-client/src/main/java/org/apache/lens/client/LensClient.java
@@ -226,8 +226,9 @@ public class LensClient {
     return getLensStatement(query).getResultSet();
   }
 
-  public List<QueryHandle> getQueries(String state, String queryName, String user, long fromDate, long toDate) {
-    return new LensStatement(connection).getAllQueries(state, queryName, user, fromDate, toDate);
+  public List<QueryHandle> getQueries(String state, String queryName, String user, String driver, long fromDate,
+    long toDate) {
+    return new LensStatement(connection).getAllQueries(state, queryName, user, driver, fromDate, toDate);
   }
 
   private void connectToLensServer() {

http://git-wip-us.apache.org/repos/asf/lens/blob/0e4c18cb/lens-client/src/main/java/org/apache/lens/client/LensStatement.java
----------------------------------------------------------------------
diff --git a/lens-client/src/main/java/org/apache/lens/client/LensStatement.java b/lens-client/src/main/java/org/apache/lens/client/LensStatement.java
index 40e6d76..71caa48 100644
--- a/lens-client/src/main/java/org/apache/lens/client/LensStatement.java
+++ b/lens-client/src/main/java/org/apache/lens/client/LensStatement.java
@@ -382,15 +382,17 @@ public class LensStatement {
    * @param state     the state
    * @param queryName the query name
    * @param user      the user
+   * @param driver    the driver name
    * @param fromDate  the from date
    * @param toDate    the to date
    * @return the all queries
    */
-  public List<QueryHandle> getAllQueries(String state, String queryName, String user, long fromDate, long toDate) {
+  public List<QueryHandle> getAllQueries(String state, String queryName, String user, String driver, long fromDate,
+    long toDate) {
     WebTarget target = getQueryWebTarget(connection.buildClient());
     List<QueryHandle> handles = target.queryParam("sessionid", connection.getSessionHandle())
       .queryParam("state", state).queryParam("queryName", queryName).queryParam("user", user)
-      .queryParam("fromDate", fromDate).queryParam("toDate", toDate).request()
+      .queryParam("driver", driver).queryParam("fromDate", fromDate).queryParam("toDate", toDate).request()
       .get(new GenericType<List<QueryHandle>>() {
       });
     return handles;

http://git-wip-us.apache.org/repos/asf/lens/blob/0e4c18cb/src/site/apt/user/cli.apt
----------------------------------------------------------------------
diff --git a/src/site/apt/user/cli.apt b/src/site/apt/user/cli.apt
index c266c6d..3db53c4 100644
--- a/src/site/apt/user/cli.apt
+++ b/src/site/apt/user/cli.apt
@@ -355,7 +355,7 @@ User CLI Commands
 *--+--+
 |query kill [--query_handle] \<query_handle\>|Kill query with handle <<<query_handle>>>|
 *--+--+
-|query list [--state \<query-status\>] [--name \<query-name\>] [--user \<user-who-submitted-query\>] [--fromDate \<submission-time-is-after\>] [--toDate \<submission-time-is-before\>]|Get all queries. Various filter options can be provided(optionally),  as can be seen from the command syntax|
+|query list [--state \<query-status\>] [--name \<query-name\>] [--user \<user-who-submitted-query\>] [--driver \<driver-where-query-was-executed\>] [--fromDate \<submission-time-is-after\>] [--toDate \<submission-time-is-before\>]|Get all queries. Various filter options can be provided(optionally),  as can be seen from the command syntax|
 *--+--+
 |query results [--query_handle] \<query_handle\> [--save_location \<save_location\>] [--async \<async\>]|get results of query with query handle <<<query_handle>>>. If async is false then wait till the query execution is completed, it's by default true. Can optionally save the results to a file by providing <<<save_location>>>.|
 *--+--+