Repository: lens Updated Branches: refs/heads/master 33dfee1d6 -> 44bb7edb6
http://git-wip-us.apache.org/repos/asf/lens/blob/44bb7edb/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java ---------------------------------------------------------------------- diff --git a/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java b/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java new file mode 100644 index 0000000..821c388 --- /dev/null +++ b/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java @@ -0,0 +1,515 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.lens.regression.client; + +import java.io.File; +import java.io.IOException; +import java.lang.reflect.Method; +import java.util.List; + +import javax.ws.rs.client.WebTarget; +import javax.xml.bind.JAXBException; + +import org.apache.lens.api.query.*; +import org.apache.lens.regression.core.constants.QueryInventory; +import org.apache.lens.regression.core.helpers.*; +import org.apache.lens.regression.core.testHelper.BaseTestClass; +import org.apache.lens.server.api.error.LensException; + +import org.apache.log4j.Logger; + +import org.testng.Assert; +import org.testng.annotations.*; + + +public class ITListQueryTest extends BaseTestClass { + + WebTarget servLens; + private String sessionHandleString; + + LensServerHelper lens = getLensServerHelper(); + MetastoreHelper mHelper = getMetastoreHelper(); + SessionHelper sHelper = getSessionHelper(); + QueryHelper qHelper = getQueryHelper(); + + private final String hdfsJarPath = lens.getServerHdfsUrl() + "/tmp"; + private final String localJarPath = new File("").getAbsolutePath() + "/lens-regression/target/testjars/"; + private final String hiveUdfJar = "hiveudftest.jar"; + private final String serverResourcePath = "/tmp/regression/resources"; + String jdbcDriver = "jdbc/jdbc1", hiveDriver = "hive/hive1"; + + + private static Logger logger = Logger.getLogger(ITListQueryTest.class); + + @BeforeClass(alwaysRun = true) + public void initialize() throws IOException, JAXBException, LensException { + servLens = ServiceManagerHelper.init(); +// HadoopUtil.uploadJars(localJarPath + "/" + hiveUdfJar, hdfsJarPath); + logger.info("Creating a new Session"); + sessionHandleString = lens.openSession(lens.getCurrentDB()); + } + + @BeforeMethod(alwaysRun = true) + public void setUp(Method method) throws Exception { + logger.info("Test Name: " + method.getName()); + } + + @AfterClass(alwaysRun = true) + public void closeSession() throws Exception { + logger.info("Closing Session"); + lens.closeSession(); + } + + @DataProvider(name = "DP") + public Object[][] getData() throws Exception { + + String[] queries = new String[]{QueryInventory.HIVE_CUBE_QUERY, QueryInventory.HIVE_DIM_QUERY, + QueryInventory.JDBC_DIM_QUERY, }; + Object[][] testData = new Object[3][1]; + + int i = 0; + for (String query : queries) { + testData[i][0] = query; + i++; + } + return testData; + } + + + @Test(enabled = true, dataProvider = "DP") + public void getQueryByQueryNameAllQuery(String queryString) throws Exception { + + String queryName = "queryNameFirst"; + String queryName1 = "queryNameSecond"; + String queryName2 = "Name"; + + //Running Query with queryName + QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(queryString, queryName).getData(); + LensQuery lensQuery = qHelper.waitForCompletion(queryHandle); + Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed"); + + //Running Query with queryName1 + QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(queryString, queryName1).getData(); + lensQuery = qHelper.waitForCompletion(queryHandle1); + Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed"); + + //Running Query with queryName + QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(queryString, queryName).getData(); + lensQuery = qHelper.waitForCompletion(queryHandle2); + Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL); + + //Running Query with queryName2 + QueryHandle queryHandle3 = (QueryHandle) qHelper.executeQuery(queryString, queryName2).getData(); + lensQuery = qHelper.waitForCompletion(queryHandle3); + Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL); + + //Getting queryList by queryName + List<QueryHandle> list = qHelper.getQueryHandleList(queryName); + Assert.assertTrue(list.contains(queryHandle), "List by Query Name failed"); + Assert.assertFalse(list.contains(queryHandle1), "List by Query Name failed"); + Assert.assertTrue(list.contains(queryHandle2), "List by Query Name failed"); + + //Getting queryList by queryName1 + List<QueryHandle> list1 = qHelper.getQueryHandleList(queryName1); + Assert.assertFalse(list1.contains(queryHandle), "List by Query Name failed"); + Assert.assertTrue(list1.contains(queryHandle1), "List by Query Name failed"); + Assert.assertFalse(list1.contains(queryHandle2), "List by Query Name failed"); + + //Getting queryList by queryName2 + List<QueryHandle> list2 = qHelper.getQueryHandleList(queryName2); + Assert.assertTrue(list2.contains(queryHandle), "List by Query Name failed"); + Assert.assertTrue(list2.contains(queryHandle1), "List by Query Name failed"); + Assert.assertTrue(list2.contains(queryHandle2), "List by Query Name failed"); + Assert.assertTrue(list2.contains(queryHandle3), "List by Query Name failed"); + + //Getting all queryList + List<QueryHandle> list3 = qHelper.getQueryHandleList(); + Assert.assertTrue(list3.contains(queryHandle), "List by Query Name failed"); + Assert.assertTrue(list3.contains(queryHandle1), "List by Query Name failed"); + Assert.assertTrue(list3.contains(queryHandle2), "List by Query Name failed"); + Assert.assertTrue(list3.contains(queryHandle3), "List by Query Name failed"); + } + + @Test(enabled = true) + public void listQueryByTimeRange() throws Exception { + + //Running First Query + + String startTime = String.valueOf(System.currentTimeMillis()); + logger.info("Start Time of 1st Query : " + startTime); + Thread.sleep(20000); + + QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(QueryInventory.QUERY).getData(); + LensQuery lensQuery = qHelper.waitForCompletion(queryHandle); + Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed"); + + String endTime = String.valueOf(System.currentTimeMillis()); + logger.info("End Time of 1st Query : " + endTime); + + Thread.sleep(20000); + + //Running Second Query + + String startTime1 = String.valueOf(System.currentTimeMillis()); + logger.info("Start Time of 2nd Query : " + startTime1); + Thread.sleep(20000); + + QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(QueryInventory.QUERY).getData(); + lensQuery = qHelper.waitForCompletion(queryHandle1); + Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed"); + + String endTime1 = String.valueOf(System.currentTimeMillis()); + logger.info("End Time of 2nd Query : " + endTime1); + + List<QueryHandle> list = qHelper.getQueryHandleList(null, null, null, sessionHandleString, startTime, endTime); + + Assert.assertTrue(list.contains(queryHandle), "QueryList by TimeRange is not correct"); + Assert.assertFalse(list.contains(queryHandle1), "QueryList by TimeRange is not correct"); + + List<QueryHandle> list1 = qHelper.getQueryHandleList(null, null, null, sessionHandleString, startTime1, endTime1); + Assert.assertFalse(list1.contains(queryHandle), "QueryList by TimeRange is not correct"); + Assert.assertTrue(list1.contains(queryHandle1), "QueryList by TimeRange is not correct"); + + List<QueryHandle> list2 = qHelper.getQueryHandleList(null, null, null, sessionHandleString, startTime, endTime1); + Assert.assertTrue(list2.contains(queryHandle), "QueryList by TimeRange is not correct"); + Assert.assertTrue(list2.contains(queryHandle1), "QueryList by TimeRange is not correct"); + + List<QueryHandle> list3 = qHelper.getQueryHandleList(); + Assert.assertTrue(list3.contains(queryHandle), "QueryList by TimeRange is not correct"); + Assert.assertTrue(list3.contains(queryHandle1), "QueryList by TimeRange is not correct"); + } + + + @Test(enabled = true) + public void listQuerySpecificUserAllUser() throws Exception { + + String diffUser = "diff"; + String diffPass = "diff"; + String diffSessionHandleString = sHelper.openNewSession(diffUser, diffPass, lens.getCurrentDB()); + + //Running Query with user1 + QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(QueryInventory.QUERY).getData(); + LensQuery lensQuery = qHelper.waitForCompletion(queryHandle1); + Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed"); + + //Running Query with user2 + QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(QueryInventory.QUERY, null, + diffSessionHandleString).getData(); + lensQuery = qHelper.waitForCompletion(diffSessionHandleString, queryHandle2); + Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, + "Query should complete successfully"); + + //Getting queryList by user1 + List<QueryHandle> list = qHelper.getQueryHandleList(null, null, lens.getUserName()); + Assert.assertTrue(list.contains(queryHandle1), "List by user failed"); + Assert.assertFalse(list.contains(queryHandle2), "List by user failed"); + + //Getting queryList by user2 + list = qHelper.getQueryHandleList(null, null, diffUser); + Assert.assertFalse(list.contains(queryHandle1), "List by user failed"); + Assert.assertTrue(list.contains(queryHandle2), "List by user failed"); + + //Getting queryList by user = all + list = qHelper.getQueryHandleList(null, null, "all"); + Assert.assertTrue(list.contains(queryHandle1), "List by user failed"); + Assert.assertTrue(list.contains(queryHandle2), "List by user failed"); + } + + + @Test(enabled = true) + public void listQueryByTimeRangeQueryName() throws Exception { + + String queryName = "testQueryName"; + + String startTime = String.valueOf(System.currentTimeMillis()); + logger.info("Start Time of 1st Query : " + startTime); + Thread.sleep(60000); + + QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(QueryInventory.QUERY, queryName).getData(); + LensQuery lensQuery = qHelper.waitForCompletion(queryHandle); + Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed"); + + String endTime = String.valueOf(System.currentTimeMillis()); + logger.info("End Time of 1st Query : " + endTime); + + List<QueryHandle> list = qHelper.getQueryHandleList(queryName, null, null, sessionHandleString, startTime, endTime); + Assert.assertTrue(list.contains(queryHandle), "QueryList by TimeRange is not correct"); + + List<QueryHandle> list1 = qHelper.getQueryHandleList(); + Assert.assertTrue(list1.contains(queryHandle), "QueryList by TimeRange is not correct"); + + } + + @Test(enabled = true) + public void listQueryByState() throws Exception { + //Successful Query + QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(QueryInventory.QUERY).getData(); + LensQuery lensQuery = qHelper.waitForCompletion(queryHandle1); + Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed"); + + //Running Query + QueryHandle queryHandle3 = (QueryHandle) qHelper.executeQuery(QueryInventory.SLEEP_QUERY).getData(); + qHelper.waitForQueryToRun(queryHandle3); + + //Cancelled Query + QueryHandle queryHandle4 = (QueryHandle) qHelper.executeQuery(QueryInventory.SLEEP_QUERY).getData(); + qHelper.waitForQueryToRun(queryHandle4); + qHelper.killQueryByQueryHandle(queryHandle4); + + //TODO : Add Failed queries + + //List Successful queries + List<QueryHandle> list = qHelper.getQueryHandleList(null, "SUCCESSFUL"); + Assert.assertTrue(list.contains(queryHandle1), "QueryList by State is not correct"); + Assert.assertFalse(list.contains(queryHandle3), "QueryList by State is not correct"); + Assert.assertFalse(list.contains(queryHandle4), "QueryList by State is not correct"); + + //List Failed queries + list = qHelper.getQueryHandleList(null, "FAILED"); + Assert.assertFalse(list.contains(queryHandle1), "QueryList by State is not correct"); + Assert.assertFalse(list.contains(queryHandle3), "QueryList by State is not correct"); + Assert.assertFalse(list.contains(queryHandle4), "QueryList by State is not correct"); + + //List Running queries + list = qHelper.getQueryHandleList(null, "RUNNING"); + Assert.assertFalse(list.contains(queryHandle1), "QueryList by State is not correct"); + Assert.assertTrue(list.contains(queryHandle3), "QueryList by State is not correct"); + Assert.assertFalse(list.contains(queryHandle4), "QueryList by State is not correct"); + + //List Cancelled queries + list = qHelper.getQueryHandleList(null, "CANCELED"); + Assert.assertFalse(list.contains(queryHandle1), "QueryList by State is not correct"); + Assert.assertFalse(list.contains(queryHandle3), "QueryList by State is not correct"); + Assert.assertTrue(list.contains(queryHandle4), "QueryList by State is not correct"); + + //List All queries + list = qHelper.getQueryHandleList(); + Assert.assertTrue(list.contains(queryHandle1), "QueryList by State is not correct"); + Assert.assertTrue(list.contains(queryHandle3), "QueryList by State is not correct"); + Assert.assertTrue(list.contains(queryHandle4), "QueryList by State is not correct"); + + } + + + @Test(enabled = true) + public void listQueryByDriver() throws Exception { + + QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(QueryInventory.JDBC_CUBE_QUERY).getData(); + qHelper.waitForQueryToRun(queryHandle1); + + QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(QueryInventory.JDBC_DIM_QUERY).getData(); + qHelper.waitForQueryToRun(queryHandle2); + + QueryHandle queryHandle3 = (QueryHandle) qHelper.executeQuery(QueryInventory.HIVE_CUBE_QUERY).getData(); + qHelper.waitForQueryToRun(queryHandle3); + + QueryHandle queryHandle4 = (QueryHandle) qHelper.executeQuery(QueryInventory.HIVE_DIM_QUERY).getData(); + qHelper.waitForQueryToRun(queryHandle4); + + //List jdbc queries + List<QueryHandle> list = qHelper.getQueryHandleList(null, null, null, sessionHandleString, null, null, jdbcDriver); + Assert.assertTrue(list.contains(queryHandle1), "QueryList by driver is not correct"); + Assert.assertTrue(list.contains(queryHandle2), "QueryList by driver is not correct"); + Assert.assertFalse(list.contains(queryHandle3), "QueryList by driver is not correct"); + Assert.assertFalse(list.contains(queryHandle4), "QueryList by driver is not correct"); + + //List hive queries + list = qHelper.getQueryHandleList(null, null, null, sessionHandleString, null, null, hiveDriver); + Assert.assertFalse(list.contains(queryHandle1), "QueryList by driver is not correct"); + Assert.assertFalse(list.contains(queryHandle2), "QueryList by driver is not correct"); + Assert.assertTrue(list.contains(queryHandle3), "QueryList by driver is not correct"); + Assert.assertTrue(list.contains(queryHandle4), "QueryList by driver is not correct"); + + } + + + @Test(enabled = true) + public void listFinishedQueryByDriver() throws Exception { + + QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(QueryInventory.JDBC_CUBE_QUERY).getData(); + qHelper.waitForCompletion(queryHandle1); + + QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(QueryInventory.JDBC_DIM_QUERY).getData(); + qHelper.waitForCompletion(queryHandle2); + + QueryHandle queryHandle3 = (QueryHandle) qHelper.executeQuery(QueryInventory.HIVE_CUBE_QUERY).getData(); + qHelper.waitForCompletion(queryHandle3); + + QueryHandle queryHandle4 = (QueryHandle) qHelper.executeQuery(QueryInventory.HIVE_DIM_QUERY).getData(); + qHelper.waitForCompletion(queryHandle4); + + // TODO : Add purger configuration time + + // sleep for query purger time + Thread.sleep(30000); + + // This is make sure query is retrived from DB. + lens.restart(); + + //List jdbc queries + List<QueryHandle> list = qHelper.getQueryHandleList(null, null, null, sessionHandleString, null, null, jdbcDriver); + Assert.assertTrue(list.contains(queryHandle1), "QueryList by driver is not correct"); + Assert.assertTrue(list.contains(queryHandle2), "QueryList by driver is not correct"); + Assert.assertFalse(list.contains(queryHandle3), "QueryList by driver is not correct"); + Assert.assertFalse(list.contains(queryHandle4), "QueryList by driver is not correct"); + + //List hive queries + list = qHelper.getQueryHandleList(null, null, null, sessionHandleString, null, null, hiveDriver); + Assert.assertFalse(list.contains(queryHandle1), "QueryList by driver is not correct"); + Assert.assertFalse(list.contains(queryHandle2), "QueryList by driver is not correct"); + Assert.assertTrue(list.contains(queryHandle3), "QueryList by driver is not correct"); + Assert.assertTrue(list.contains(queryHandle4), "QueryList by driver is not correct"); + } + + + @Test(enabled = true) + public void listQueryByDriverNUser() throws Exception { + + QueryHandle q1 = (QueryHandle) qHelper.executeQuery(QueryInventory.JDBC_CUBE_QUERY).getData(); + QueryHandle q2 = (QueryHandle) qHelper.executeQuery(QueryInventory.HIVE_DIM_QUERY).getData(); + + //Running Query with diff user + String diffSession = sHelper.openNewSession("diff", "diff", lens.getCurrentDB()); + QueryHandle q3 = (QueryHandle) qHelper.executeQuery(QueryInventory.JDBC_CUBE_QUERY, null, diffSession).getData(); + QueryHandle q4 = (QueryHandle) qHelper.executeQuery(QueryInventory.HIVE_CUBE_QUERY, null, diffSession).getData(); + + List<QueryHandle> list = qHelper.getQueryHandleList(null, null, "all", sessionHandleString, null, null, jdbcDriver); + Assert.assertTrue(list.contains(q1), "QueryList by driver is not correct"); + Assert.assertTrue(list.contains(q3), "QueryList by driver is not correct"); + + list = qHelper.getQueryHandleList(null, null, "all", sessionHandleString, null, null, hiveDriver); + Assert.assertTrue(list.contains(q2), "QueryList by driver is not correct"); + Assert.assertTrue(list.contains(q4), "QueryList by driver is not correct"); + + //Check for driver along with user filter + list = qHelper.getQueryHandleList(null, null, lens.getUserName(), sessionHandleString, null, null, jdbcDriver); + Assert.assertTrue(list.contains(q1), "QueryList by driver is not correct"); + Assert.assertFalse(list.contains(q3), "QueryList by driver is not correct"); + + list = qHelper.getQueryHandleList(null, null, "diff", sessionHandleString, null, null, hiveDriver); + Assert.assertTrue(list.contains(q4), "QueryList by driver is not correct"); + Assert.assertFalse(list.contains(q2), "QueryList by driver is not correct"); + } + + + @Test(enabled = true) + public void listQueryByDriverNStatus() throws Exception { + + String user = "new", pwd = "new"; + String newSession = sHelper.openNewSession(user, pwd, mHelper.getCurrentDB()); + + //Cancelled hive Query + QueryHandle q1 = (QueryHandle) qHelper.executeQuery(QueryInventory.SLEEP_QUERY, null, newSession).getData(); + qHelper.waitForQueryToRun(q1, newSession); + qHelper.killQueryByQueryHandle(q1); + + //Successful hive Query + QueryHandle q2 = (QueryHandle) qHelper.executeQuery(QueryInventory.HIVE_CUBE_QUERY, null, newSession).getData(); + qHelper.waitForCompletion(newSession, q2); + + //Successful jdbc Query + QueryHandle q3 = (QueryHandle) qHelper.executeQuery(QueryInventory.JDBC_CUBE_QUERY, null, newSession).getData(); + qHelper.waitForCompletion(newSession, q2); + + //Running hive Query + QueryHandle q4 = (QueryHandle) qHelper.executeQuery(QueryInventory.SLEEP_QUERY, null, newSession).getData(); + qHelper.waitForQueryToRun(q4, newSession); + + List<QueryHandle> cancelledHive = qHelper.getQueryHandleList(null, "CANCELED", user, sessionHandleString, null, + null, hiveDriver); + List<QueryHandle> successJdbc = qHelper.getQueryHandleList(null, "SUCCESSFUL", user, sessionHandleString, null, + null, jdbcDriver); + List<QueryHandle> successhive = qHelper.getQueryHandleList(null, "SUCCESSFUL", user, sessionHandleString, null, + null, hiveDriver); + + Assert.assertTrue(cancelledHive.contains(q1), "QueryList by driver is not correct"); + Assert.assertFalse(cancelledHive.contains(q2), "QueryList by driver is not correct"); + Assert.assertFalse(cancelledHive.contains(q3), "QueryList by driver is not correct"); + Assert.assertFalse(cancelledHive.contains(q4), "QueryList by driver is not correct"); + + Assert.assertTrue(successhive.contains(q2), "QueryList by driver is not correct"); + Assert.assertFalse(successhive.contains(q1), "QueryList by driver is not correct"); + Assert.assertFalse(successhive.contains(q3), "QueryList by driver is not correct"); + Assert.assertFalse(successhive.contains(q4), "QueryList by driver is not correct"); + + Assert.assertTrue(successJdbc.contains(q3), "QueryList by driver is not correct"); + Assert.assertFalse(successJdbc.contains(q1), "QueryList by driver is not correct"); + Assert.assertFalse(successJdbc.contains(q2), "QueryList by driver is not correct"); + Assert.assertFalse(successJdbc.contains(q4), "QueryList by driver is not correct"); + } + + + + @Test(enabled = true) + public void listQueryByNameStatusUserTimeRange() throws Exception { + + String queryName1 = "first", queryName2 = "second", queryName3 = "third"; + String user1 = "diff", pwd1 = "diff"; + String user2 = "diff1", pwd2 = "diff1"; + + String diffSession1 = sHelper.openNewSession(user1, pwd1, lens.getCurrentDB()); + String diffSession2 = sHelper.openNewSession(user2, pwd2, lens.getCurrentDB()); + + String startTime1 = String.valueOf(System.currentTimeMillis()); + Thread.sleep(10000); + QueryHandle q1 = (QueryHandle) qHelper.executeQuery(QueryInventory.QUERY, queryName1).getData(); + LensQuery lensQuery = qHelper.waitForCompletion(q1); + Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed"); + String endTime1 = String.valueOf(System.currentTimeMillis()); + + Thread.sleep(10000); + + String startTime2 = String.valueOf(System.currentTimeMillis()); + Thread.sleep(10000); + QueryHandle q2 = (QueryHandle) qHelper.executeQuery(QueryInventory.SLEEP_QUERY, queryName2, diffSession1).getData(); + String endTime2 = String.valueOf(System.currentTimeMillis()); + + Thread.sleep(10000); + + String startTime3 = String.valueOf(System.currentTimeMillis()); + Thread.sleep(10000); + QueryHandle q3 = (QueryHandle) qHelper.executeQuery(QueryInventory.SLEEP_QUERY, queryName3, diffSession2).getData(); + qHelper.killQueryByQueryHandle(q3); + String endTime3 = String.valueOf(System.currentTimeMillis()); + + Thread.sleep(10000); + + List<QueryHandle> list1 = qHelper.getQueryHandleList(queryName2, "RUNNING", user1, sessionHandleString, startTime2, + endTime2); + List<QueryHandle> list2 = qHelper.getQueryHandleList(queryName3, "CANCELED", user2, sessionHandleString, startTime3, + endTime3); + List<QueryHandle> list3 = qHelper.getQueryHandleList(queryName1, "SUCCESSFUL", lens.getUserName(), + sessionHandleString, startTime1, endTime1); + + + Assert.assertTrue(list1.contains(q2), "List by Query Name, Status,Time Range,User Failed"); + Assert.assertFalse(list1.contains(q1), "List by Query Name, Status,Time Range,User Failed"); + Assert.assertFalse(list1.contains(q3), "List by Query Name, Status,Time Range,User Failed"); + + Assert.assertTrue(list2.contains(q3), "List by Query Name, Status,Time Range,User Failed"); + Assert.assertFalse(list2.contains(q1), "List by Query Name, Status,Time Range,User Failed"); + Assert.assertFalse(list2.contains(q2), "List by Query Name, Status,Time Range,User Failed"); + + Assert.assertTrue(list3.contains(q1), "List by Query Name, Status,Time Range,User Failed"); + Assert.assertFalse(list3.contains(q2), "List by Query Name, Status,Time Range,User Failed"); + Assert.assertFalse(list3.contains(q3), "List by Query Name, Status,Time Range,User Failed"); + + } +} http://git-wip-us.apache.org/repos/asf/lens/blob/44bb7edb/lens-regression/src/test/java/org/apache/lens/regression/client/SessionResourceTests.java ---------------------------------------------------------------------- diff --git a/lens-regression/src/test/java/org/apache/lens/regression/client/SessionResourceTests.java b/lens-regression/src/test/java/org/apache/lens/regression/client/SessionResourceTests.java index 0dad6b3..bbe438f 100644 --- a/lens-regression/src/test/java/org/apache/lens/regression/client/SessionResourceTests.java +++ b/lens-regression/src/test/java/org/apache/lens/regression/client/SessionResourceTests.java @@ -27,6 +27,7 @@ import java.util.List; import java.util.Map; import javax.ws.rs.client.WebTarget; +import javax.ws.rs.core.GenericType; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @@ -74,12 +75,6 @@ public class SessionResourceTests extends BaseTestClass { private final String hiveUdfJar = "hiveudftest.jar"; private final String serverResourcePath = "/tmp/regression/resources"; - private static Map<String, String> defaultParams = new HashMap<String, String>(); - static { - defaultParams.put("lens.query.enable.persistent.resultset", "false"); - defaultParams.put("lens.query.enable.persistent.resultset.indriver", "false"); - } - private static String newParamsKey = "datanucleus.autoCreateSchema"; private static String newParamsValue = "false"; private static String createSleepFunction = "CREATE TEMPORARY FUNCTION sleep AS 'SampleUdf'"; @@ -115,8 +110,9 @@ public class SessionResourceTests extends BaseTestClass { MapBuilder query = new MapBuilder("sessionid", sessionHandle); query.put("verbose", "true"); Response response = lens.sendQuery("get", SessionURL.SESSION_PARAMS_URL, query); - String responseString = response.readEntity(String.class); - HashMap<String, String> map = Util.stringListToMap(responseString); + AssertUtil.assertSucceededResponse(response); + StringList strList = response.readEntity(new GenericType<StringList>(StringList.class)); + HashMap<String, String> map = Util.stringListToMap(strList); if (map == null){ return false; } @@ -171,8 +167,11 @@ public class SessionResourceTests extends BaseTestClass { MapBuilder query = new MapBuilder("sessionid", sessionHandleString); query.put("key", "datanucleus.autoCreateSchema"); response = lens.sendQuery("get", SessionURL.SESSION_PARAMS_URL, query); - String responseString = response.readEntity(String.class); - HashMap<String, String> map = Util.stringListToMap(responseString); + AssertUtil.assertSucceededResponse(response); + + StringList strList = response.readEntity(new GenericType<StringList>(StringList.class)); + HashMap<String, String> map = Util.stringListToMap(strList); + Assert.assertEquals(map.get("datanucleus.autoCreateSchema"), newParamsValue, "From Session Params Put"); Assert.assertEquals(map.size(), 1, "Params List contains more than one param"); @@ -186,8 +185,9 @@ public class SessionResourceTests extends BaseTestClass { MapBuilder query = new MapBuilder("sessionid", sessionHandleString); query.put("key", undefinedParamsKey); Response response = lens.sendQuery("get", SessionURL.SESSION_PARAMS_URL, query); - String responseString = response.readEntity(String.class); - HashMap<String, String> map = Util.stringListToMap(responseString); + AssertUtil.assertSucceededResponse(response); + StringList strList = response.readEntity(new GenericType<StringList>(StringList.class)); + HashMap<String, String> map = Util.stringListToMap(strList); Assert.assertNull(map, "Get should have returned empty params list, but didnt"); } @@ -211,8 +211,11 @@ public class SessionResourceTests extends BaseTestClass { MapBuilder query = new MapBuilder("sessionid", sessionHandleString); query.put("key", "datanucleus.autoCreateSchema"); response = lens.sendQuery("get", SessionURL.SESSION_PARAMS_URL, query); - String responseString = response.readEntity(String.class); - HashMap<String, String> map = Util.stringListToMap(responseString); + AssertUtil.assertSucceededResponse(response); + + StringList strList = response.readEntity(new GenericType<StringList>(StringList.class)); + HashMap<String, String> map = Util.stringListToMap(strList); + Assert.assertEquals(map.get("datanucleus.autoCreateSchema"), newParamsValue, "From Session Params Put"); Assert.assertEquals(map.size(), 1, "Params List contains more than one param"); @@ -224,7 +227,6 @@ public class SessionResourceTests extends BaseTestClass { String path = hdfsJarPath + "/" + hiveUdfJar; sHelper.addResourcesJar(path); - sHelper.setAndValidateParam(defaultParams); QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(createSleepFunction).getData(); LensQuery lensQuery = qHelper.waitForCompletion(queryHandle); @@ -247,7 +249,6 @@ public class SessionResourceTests extends BaseTestClass { String path = serverResourcePath + "/" + hiveUdfJar; sHelper.addResourcesJar(path); - sHelper.setAndValidateParam(defaultParams); QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(createSleepFunction).getData(); LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
