You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by ra...@apache.org on 2015/10/19 02:43:38 UTC
lens git commit: LENS-815 : Provide an option to list queries by
driver
Repository: lens
Updated Branches:
refs/heads/master deaac5031 -> 892a4c1a3
LENS-815 : Provide an option 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/892a4c1a
Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/892a4c1a
Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/892a4c1a
Branch: refs/heads/master
Commit: 892a4c1a3e0b22a3c41cd2189fcf91f5e38c8b8d
Parents: deaac50
Author: Deepak Barr <de...@gmail.com>
Authored: Mon Oct 19 06:13:25 2015 +0530
Committer: raju <ra...@apache.org>
Committed: Mon Oct 19 06:13:25 2015 +0530
----------------------------------------------------------------------
.../lens/server/api/query/QueryExecutionService.java | 5 +++--
.../org/apache/lens/server/query/LensServerDAO.java | 10 ++++++++--
.../lens/server/query/QueryExecutionServiceImpl.java | 10 ++++++----
.../apache/lens/server/query/QueryServiceResource.java | 13 ++++++++-----
.../apache/lens/server/ui/QueryServiceUIResource.java | 7 ++++---
.../java/org/apache/lens/server/query/TestLensDAO.java | 9 ++++++---
6 files changed, 35 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lens/blob/892a4c1a/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryExecutionService.java
----------------------------------------------------------------------
diff --git a/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryExecutionService.java b/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryExecutionService.java
index 724e36a..15ed222 100644
--- a/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryExecutionService.java
+++ b/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryExecutionService.java
@@ -228,14 +228,15 @@ public interface QueryExecutionService {
* @param state return queries in this state. if null, all queries will be returned
* @param user Get queries submitted by a specific user.
* If this set to "all", queries of all users are returned
+ * @param driver Get queries submitted on a specific driver.
* @param queryName return queries containing the query name. If null, all queries will be returned
* @param fromDate start date of time range interval
* @param toDate end date of the time range interval
* @return List of query handles
* @throws LensException the lens exception
*/
- List<QueryHandle> getAllQueries(LensSessionHandle sessionHandle, String state, String user, String queryName,
- long fromDate, long toDate) throws LensException;
+ List<QueryHandle> getAllQueries(LensSessionHandle sessionHandle, String state, String user, String driver,
+ String queryName, long fromDate, long toDate) throws LensException;
/**
* Returns all the prepared queries for the specified user. If no user is passed, queries of all users will be
http://git-wip-us.apache.org/repos/asf/lens/blob/892a4c1a/lens-server/src/main/java/org/apache/lens/server/query/LensServerDAO.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/query/LensServerDAO.java b/lens-server/src/main/java/org/apache/lens/server/query/LensServerDAO.java
index 05bee9e..b9dd286 100644
--- a/lens-server/src/main/java/org/apache/lens/server/query/LensServerDAO.java
+++ b/lens-server/src/main/java/org/apache/lens/server/query/LensServerDAO.java
@@ -158,14 +158,15 @@ public class LensServerDAO {
*
* @param state the state
* @param user the user
+ * @param driverName the driverClass
* @param queryName the query name
* @param fromDate the from date
* @param toDate the to date
* @return the list
* @throws LensException the lens exception
*/
- public List<QueryHandle> findFinishedQueries(String state, String user, String queryName, long fromDate, long toDate)
- throws LensException {
+ public List<QueryHandle> findFinishedQueries(String state, String user, String driverName, String queryName,
+ long fromDate, long toDate) throws LensException {
boolean addFilter = StringUtils.isNotBlank(state) || StringUtils.isNotBlank(user)
|| StringUtils.isNotBlank(queryName);
StringBuilder builder = new StringBuilder("SELECT handle FROM finished_queries");
@@ -190,6 +191,11 @@ public class LensServerDAO {
params.add("%" + queryName + "%");
}
+ if (StringUtils.isNotBlank(driverName)) {
+ filters.add("lower(driverclass)=?");
+ params.add(driverName.toLowerCase());
+ }
+
filters.add("submissiontime BETWEEN ? AND ?");
params.add(fromDate);
params.add(toDate);
http://git-wip-us.apache.org/repos/asf/lens/blob/892a4c1a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
index deb8572..7b15a3c 100644
--- a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
+++ b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
@@ -2040,10 +2040,10 @@ public class QueryExecutionServiceImpl extends BaseLensService implements QueryE
* (non-Javadoc)
*
* @see org.apache.lens.server.api.query.QueryExecutionService#getAllQueries(org.apache.lens.api.LensSessionHandle,
- * java.lang.String, java.lang.String, java.lang.String, long, long)
+ * java.lang.String, java.lang.String, java.lang.String, java.lang.String, long, long)
*/
@Override
- public List<QueryHandle> getAllQueries(LensSessionHandle sessionHandle, String state, String userName,
+ public List<QueryHandle> getAllQueries(LensSessionHandle sessionHandle, String state, String userName, String driver,
String queryName, long fromDate, long toDate) throws LensException {
validateTimeRange(fromDate, toDate);
userName = UtilityMethods.removeDomain(userName);
@@ -2062,6 +2062,7 @@ public class QueryExecutionServiceImpl extends BaseLensService implements QueryE
if (StringUtils.isBlank(userName)) {
userName = getSession(sessionHandle).getLoggedInUser();
}
+ boolean filterByDriver = StringUtils.isNotBlank(driver);
List<QueryHandle> all = new ArrayList<QueryHandle>(allQueries.keySet());
Iterator<QueryHandle> itr = all.iterator();
@@ -2071,6 +2072,7 @@ public class QueryExecutionServiceImpl extends BaseLensService implements QueryE
long querySubmitTime = context.getSubmissionTime();
if ((filterByStatus && status != context.getStatus().getStatus())
|| (filterByQueryName && !context.getQueryName().toLowerCase().contains(queryName))
+ || (filterByDriver && !context.getSelectedDriver().getClass().getName().equalsIgnoreCase(driver))
|| (!"all".equalsIgnoreCase(userName) && !userName.equalsIgnoreCase(context.getSubmittedUser()))
|| (!(fromDate <= querySubmitTime && querySubmitTime <= toDate))) {
itr.remove();
@@ -2082,8 +2084,8 @@ public class QueryExecutionServiceImpl extends BaseLensService implements QueryE
if ("all".equalsIgnoreCase(userName)) {
userName = null;
}
- List<QueryHandle> persistedQueries = lensServerDao.findFinishedQueries(state, userName, queryName, fromDate,
- toDate);
+ List<QueryHandle> persistedQueries = lensServerDao.findFinishedQueries(state, userName, driver, queryName,
+ fromDate, toDate);
if (persistedQueries != null && !persistedQueries.isEmpty()) {
log.info("Adding persisted queries {}", persistedQueries.size());
all.addAll(persistedQueries);
http://git-wip-us.apache.org/repos/asf/lens/blob/892a4c1a/lens-server/src/main/java/org/apache/lens/server/query/QueryServiceResource.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/query/QueryServiceResource.java b/lens-server/src/main/java/org/apache/lens/server/query/QueryServiceResource.java
index 96f6aea..08192bd 100644
--- a/lens-server/src/main/java/org/apache/lens/server/query/QueryServiceResource.java
+++ b/lens-server/src/main/java/org/apache/lens/server/query/QueryServiceResource.java
@@ -145,6 +145,7 @@ public class QueryServiceResource {
* all the queries will be returned
* @param user Returns queries submitted by this user. If set to "all", returns queries of all users. By default,
* returns queries of the current user.
+ * @param driver Get queries submitted on a specific driver.
* @param fromDate from date to search queries in a time range, the range is inclusive(submitTime >= fromDate)
* @param toDate to date to search queries in a time range, the range is inclusive(toDate >= submitTime)
* @return List of {@link QueryHandle} objects
@@ -154,14 +155,14 @@ public class QueryServiceResource {
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN})
public List<QueryHandle> getAllQueries(@QueryParam("sessionid") LensSessionHandle sessionid,
@DefaultValue("") @QueryParam("state") String state, @DefaultValue("") @QueryParam("queryName") String queryName,
- @DefaultValue("") @QueryParam("user") String user, @DefaultValue("-1") @QueryParam("fromDate") long fromDate,
- @DefaultValue("-1") @QueryParam("toDate") long toDate) {
+ @DefaultValue("") @QueryParam("user") String user, @DefaultValue("") @QueryParam("driver") String driver,
+ @DefaultValue("-1") @QueryParam("fromDate") long fromDate, @DefaultValue("-1") @QueryParam("toDate") long toDate) {
checkSessionId(sessionid);
try {
if (toDate == -1L) {
toDate = Long.MAX_VALUE;
}
- return queryServer.getAllQueries(sessionid, state, user, queryName, fromDate, toDate);
+ return queryServer.getAllQueries(sessionid, state, user, driver, queryName, fromDate, toDate);
} catch (LensException e) {
throw new WebApplicationException(e);
}
@@ -254,6 +255,7 @@ public class QueryServiceResource {
* {@link org.apache.lens.api.query.QueryStatus.Status#SUCCESSFUL} cannot be cancelled
* @param user If any user is passed, all the queries submitted by the user will be cancelled, otherwise all the
* queries will be cancelled
+ * @param driver Get queries submitted on a specific driver.
* @param queryName Cancel queries matching the query name
* @param fromDate the from date, inclusive(submitTime>=fromDate)
* @param toDate the to date, inclusive(toDate>=submitTime)
@@ -267,14 +269,15 @@ public class QueryServiceResource {
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN})
public APIResult cancelAllQueries(@QueryParam("sessionid") LensSessionHandle sessionid,
@DefaultValue("") @QueryParam("state") String state, @DefaultValue("") @QueryParam("user") String user,
- @DefaultValue("") @QueryParam("queryName") String queryName,
+ @DefaultValue("") @QueryParam("queryName") String queryName, @DefaultValue("") @QueryParam("driver") String driver,
@DefaultValue("-1") @QueryParam("fromDate") long fromDate, @DefaultValue("-1") @QueryParam("toDate") long toDate) {
checkSessionId(sessionid);
int numCancelled = 0;
List<QueryHandle> handles = null;
boolean failed = false;
try {
- handles = getAllQueries(sessionid, state, queryName, user, fromDate, toDate == -1L ? Long.MAX_VALUE : toDate);
+ handles = getAllQueries(sessionid, state, queryName, user, driver, fromDate,
+ toDate == -1L ? Long.MAX_VALUE : toDate);
for (QueryHandle handle : handles) {
if (cancelQuery(sessionid, handle)) {
numCancelled++;
http://git-wip-us.apache.org/repos/asf/lens/blob/892a4c1a/lens-server/src/main/java/org/apache/lens/server/ui/QueryServiceUIResource.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/ui/QueryServiceUIResource.java b/lens-server/src/main/java/org/apache/lens/server/ui/QueryServiceUIResource.java
index 17022aa..424bd87 100644
--- a/lens-server/src/main/java/org/apache/lens/server/ui/QueryServiceUIResource.java
+++ b/lens-server/src/main/java/org/apache/lens/server/ui/QueryServiceUIResource.java
@@ -106,6 +106,7 @@ public class QueryServiceUIResource {
* be returned. Possible states are {@link org.apache.lens.api.query.QueryStatus.Status#values()}
* @param user return queries matching the user. If set to "all", return queries of all users. By default,
* returns queries of the current user.
+ * @param driver Get queries submitted on a specific driver.
* @param queryName human readable query name set by user (optional)
* @param fromDate the from date
* @param toDate the to date
@@ -116,13 +117,13 @@ public class QueryServiceUIResource {
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN})
public List<QueryHandle> getAllQueries(@QueryParam("publicId") UUID publicId,
@DefaultValue("") @QueryParam("state") String state, @DefaultValue("") @QueryParam("user") String user,
- @DefaultValue("") @QueryParam("queryName") String queryName,
+ @DefaultValue("") @QueryParam("driver") String driver, @DefaultValue("") @QueryParam("queryName") String queryName,
@DefaultValue("-1") @QueryParam("fromDate") long fromDate, @DefaultValue("-1") @QueryParam("toDate") long toDate) {
LensSessionHandle sessionHandle = SessionUIResource.getOpenSession(publicId);
checkSessionHandle(sessionHandle);
try {
- return queryServer.getAllQueries(sessionHandle, state, user, queryName, fromDate, toDate == -1L ? Long.MAX_VALUE
- : toDate);
+ return queryServer.getAllQueries(sessionHandle, state, user, driver, queryName, fromDate,
+ toDate == -1L ? Long.MAX_VALUE : toDate);
} catch (LensException e) {
throw new WebApplicationException(e);
}
http://git-wip-us.apache.org/repos/asf/lens/blob/892a4c1a/lens-server/src/test/java/org/apache/lens/server/query/TestLensDAO.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/query/TestLensDAO.java b/lens-server/src/test/java/org/apache/lens/server/query/TestLensDAO.java
index 8c3e2a2..bc1463f 100644
--- a/lens-server/src/test/java/org/apache/lens/server/query/TestLensDAO.java
+++ b/lens-server/src/test/java/org/apache/lens/server/query/TestLensDAO.java
@@ -35,6 +35,7 @@ import org.apache.lens.api.query.QueryStatus;
import org.apache.lens.driver.jdbc.JDBCResultSet;
import org.apache.lens.server.LensJerseyTest;
import org.apache.lens.server.LensServices;
+import org.apache.lens.server.api.driver.MockDriver;
import org.apache.lens.server.api.query.FinishedLensQuery;
import org.apache.lens.server.api.query.QueryContext;
import org.apache.lens.server.api.query.QueryExecutionService;
@@ -68,6 +69,7 @@ public class TestLensDAO extends LensJerseyTest {
new Configuration());
long submissionTime = queryContext.getSubmissionTime();
queryContext.setQueryName("daoTestQuery1");
+ queryContext.getDriverContext().setSelectedDriver(new MockDriver());
FinishedLensQuery finishedLensQuery = new FinishedLensQuery(queryContext);
finishedLensQuery.setStatus(QueryStatus.Status.SUCCESSFUL.name());
@@ -125,8 +127,8 @@ public class TestLensDAO extends LensJerseyTest {
// Test find finished queries
LensSessionHandle session = service.openSession("foo@localhost", "bar", new HashMap<String, String>());
- List<QueryHandle> persistedHandles = service.lensServerDao.findFinishedQueries(null, null, null, submissionTime,
- System.currentTimeMillis());
+ List<QueryHandle> persistedHandles = service.lensServerDao.findFinishedQueries(null, null, null, null,
+ submissionTime, System.currentTimeMillis());
if (persistedHandles != null) {
for (QueryHandle handle : persistedHandles) {
LensQuery query = service.getQuery(session, handle);
@@ -139,7 +141,8 @@ public class TestLensDAO extends LensJerseyTest {
System.out.println("@@ State = " + queryContext.getStatus().getStatus().name());
List<QueryHandle> daoTestQueryHandles = service.lensServerDao.findFinishedQueries(finishedLensQuery.getStatus(),
- queryContext.getSubmittedUser(), "daotestquery1", -1L, Long.MAX_VALUE);
+ queryContext.getSubmittedUser(), queryContext.getSelectedDriver().getClass().getName(), "daotestquery1", -1L,
+ Long.MAX_VALUE);
Assert.assertEquals(daoTestQueryHandles.size(), 1);
Assert.assertEquals(daoTestQueryHandles.get(0).getHandleId().toString(), finishedHandle);
}