You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by am...@apache.org on 2015/06/18 08:14:38 UTC
incubator-lens git commit: LENS-517 : Add cascade option to drop db
from lens cli
Repository: incubator-lens
Updated Branches:
refs/heads/master 44a6f5162 -> 2a61a7b54
LENS-517 : Add cascade option to drop db from lens cli
Project: http://git-wip-us.apache.org/repos/asf/incubator-lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-lens/commit/2a61a7b5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-lens/tree/2a61a7b5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-lens/diff/2a61a7b5
Branch: refs/heads/master
Commit: 2a61a7b54c7515dfed7de29bce8206fe34208b4a
Parents: 44a6f51
Author: Rajat Khandelwal <pr...@apache.org>
Authored: Thu Jun 18 11:44:25 2015 +0530
Committer: Amareshwari Sriramadasu <am...@apache.org>
Committed: Thu Jun 18 11:44:25 2015 +0530
----------------------------------------------------------------------
.../lens/cli/commands/LensDatabaseCommands.java | 8 +--
.../lens/cli/TestLensDatabaseCommands.java | 51 ++++++++++++++------
.../java/org/apache/lens/client/LensClient.java | 10 ++--
.../lens/client/LensClientSingletonWrapper.java | 37 +++++++-------
.../apache/lens/client/LensMetadataClient.java | 3 +-
.../org/apache/lens/client/TestLensClient.java | 2 +-
6 files changed, 67 insertions(+), 44 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/2a61a7b5/lens-cli/src/main/java/org/apache/lens/cli/commands/LensDatabaseCommands.java
----------------------------------------------------------------------
diff --git a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensDatabaseCommands.java b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensDatabaseCommands.java
index 800c0b5..1de24a4 100644
--- a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensDatabaseCommands.java
+++ b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensDatabaseCommands.java
@@ -86,9 +86,9 @@ public class LensDatabaseCommands extends LensCRUDCommand {
* @return the string
*/
@CliCommand(value = "drop database", help = "drop a database with specified name")
- public String dropDatabase(@CliOption(key = {"", "db"}, mandatory = true,
- help = "<database-name>") String database) {
- return drop(database, false);
+ public String dropDatabase(@CliOption(key = {"", "db"}, mandatory = true, help = "<database-name>") String database,
+ @CliOption(key = "cascade", specifiedDefaultValue = "true", unspecifiedDefaultValue = "false") boolean cascade) {
+ return drop(database, cascade);
}
@Override
@@ -116,6 +116,6 @@ public class LensDatabaseCommands extends LensCRUDCommand {
@Override
protected APIResult doDelete(String name, boolean cascade) {
- return getClient().dropDatabase(name);
+ return getClient().dropDatabase(name, cascade);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/2a61a7b5/lens-cli/src/test/java/org/apache/lens/cli/TestLensDatabaseCommands.java
----------------------------------------------------------------------
diff --git a/lens-cli/src/test/java/org/apache/lens/cli/TestLensDatabaseCommands.java b/lens-cli/src/test/java/org/apache/lens/cli/TestLensDatabaseCommands.java
index f8958c4..b6f96e6 100644
--- a/lens-cli/src/test/java/org/apache/lens/cli/TestLensDatabaseCommands.java
+++ b/lens-cli/src/test/java/org/apache/lens/cli/TestLensDatabaseCommands.java
@@ -18,12 +18,17 @@
*/
package org.apache.lens.cli;
+import static org.testng.Assert.*;
+
+import java.io.File;
+import java.net.URISyntaxException;
+
+import org.apache.lens.cli.commands.LensCubeCommands;
import org.apache.lens.cli.commands.LensDatabaseCommands;
import org.apache.lens.client.LensClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.testng.Assert;
import org.testng.annotations.Test;
/**
@@ -38,28 +43,44 @@ public class TestLensDatabaseCommands extends LensCliApplicationTest {
* Test database commands.
*/
@Test
- public void testDatabaseCommands() {
+ public void testDatabaseCommands() throws URISyntaxException {
LensClient client = new LensClient();
LensDatabaseCommands command = new LensDatabaseCommands();
+ LensCubeCommands cubeCommand = new LensCubeCommands();
command.setClient(client);
+ cubeCommand.setClient(client);
+ boolean cascade = true;
+ for(int i = 0; i < 4; i++, cascade = !cascade) {
+ testDrop(command, cubeCommand, cascade);
+ }
+ }
+ private void testDrop(LensDatabaseCommands command, LensCubeCommands cubeCommand, boolean cascade)
+ throws URISyntaxException {
String myDatabase = "my_db";
- String databaseList = command.showAllDatabases();
- Assert.assertFalse(databaseList.contains(myDatabase));
+ assertFalse(command.showAllDatabases().contains(myDatabase));
+ assertFalse(cubeCommand.showCubes().contains("sample_cube"));
String result;
command.createDatabase(myDatabase, false);
-
- databaseList = command.showAllDatabases();
- Assert.assertTrue(databaseList.contains(myDatabase));
-
+ assertTrue(command.showAllDatabases().contains(myDatabase));
result = command.switchDatabase(myDatabase);
- Assert.assertEquals("Successfully switched to my_db", result);
-
+ assertEquals(result, "Successfully switched to my_db");
+ if (cascade) {
+ String createOutput = cubeCommand.createCube(
+ new File(TestLensDatabaseCommands.class.getClassLoader().getResource("sample-cube.xml").toURI())
+ .getAbsolutePath());
+ assertEquals(createOutput, "succeeded");
+ assertTrue(cubeCommand.showCubes().contains("sample_cube"));
+ }
result = command.switchDatabase("default");
- Assert.assertEquals("Successfully switched to default", result);
-
- result = command.dropDatabase(myDatabase);
- Assert.assertEquals(result, "succeeded");
+ assertEquals(result, "Successfully switched to default");
+ assertFalse(cubeCommand.showCubes().contains("sample_cube"));
+ if (cascade) {
+ assertEquals(command.dropDatabase(myDatabase, false), "failed");
+ }
+ result = command.dropDatabase(myDatabase, cascade);
+ assertEquals(result, "succeeded");
+ assertFalse(command.showAllDatabases().contains(myDatabase));
+ assertFalse(cubeCommand.showCubes().contains("sample_cube"));
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/2a61a7b5/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 ca017b8..5c3daa8 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
@@ -76,6 +76,10 @@ public class LensClient {
this(cred.getUsername(), cred.getPassword());
}
+ public LensMetadataClient getMetadataClient() {
+ return mc;
+ }
+
public QueryHandle executeQueryAsynch(String sql, String queryName) {
LOG.debug("Executing query " + sql);
statement.execute(sql, false, queryName);
@@ -270,9 +274,9 @@ public class LensClient {
return result.getStatus() == APIResult.Status.SUCCEEDED;
}
- public APIResult dropDatabase(String database) {
- LOG.debug("Dropping database " + database);
- APIResult result = mc.dropDatabase(database);
+ public APIResult dropDatabase(String database, boolean cascade) {
+ LOG.debug("Dropping database " + database + ", cascade: " + cascade);
+ APIResult result = mc.dropDatabase(database, cascade);
LOG.debug("Return status of dropping " + database + " result " + result);
return result;
}
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/2a61a7b5/lens-client/src/main/java/org/apache/lens/client/LensClientSingletonWrapper.java
----------------------------------------------------------------------
diff --git a/lens-client/src/main/java/org/apache/lens/client/LensClientSingletonWrapper.java b/lens-client/src/main/java/org/apache/lens/client/LensClientSingletonWrapper.java
index d9ab5a1..14a0690 100644
--- a/lens-client/src/main/java/org/apache/lens/client/LensClientSingletonWrapper.java
+++ b/lens-client/src/main/java/org/apache/lens/client/LensClientSingletonWrapper.java
@@ -72,25 +72,24 @@ public class LensClientSingletonWrapper {
}
public LensClient getClient() {
- if (client != null) {
- return client;
- }
- try {
- client = new LensClient();
- } catch (LensClientServerConnectionException e) {
- if (e.getErrorCode() != 401) {
- explainFailedAttempt(e);
- throw e;
- }
- // Connecting without password prompt failed.
- for (int i = 0; i < MAX_RETRIES; i++) {
- try {
- client = new LensClient(Credentials.prompt());
- break;
- } catch (LensClientServerConnectionException lensClientServerConnectionException) {
- explainFailedAttempt(lensClientServerConnectionException);
- if (i == MAX_RETRIES - 1) {
- throw lensClientServerConnectionException;
+ if (client == null) {
+ try {
+ client = new LensClient();
+ } catch (LensClientServerConnectionException e) {
+ if (e.getErrorCode() != 401) {
+ explainFailedAttempt(e);
+ throw e;
+ }
+ // Connecting without password prompt failed.
+ for (int i = 0; i < MAX_RETRIES; i++) {
+ try {
+ client = new LensClient(Credentials.prompt());
+ break;
+ } catch (LensClientServerConnectionException lensClientServerConnectionException) {
+ explainFailedAttempt(lensClientServerConnectionException);
+ if (i == MAX_RETRIES - 1) {
+ throw lensClientServerConnectionException;
+ }
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/2a61a7b5/lens-client/src/main/java/org/apache/lens/client/LensMetadataClient.java
----------------------------------------------------------------------
diff --git a/lens-client/src/main/java/org/apache/lens/client/LensMetadataClient.java b/lens-client/src/main/java/org/apache/lens/client/LensMetadataClient.java
index c58f5ee..b4e0552 100644
--- a/lens-client/src/main/java/org/apache/lens/client/LensMetadataClient.java
+++ b/lens-client/src/main/java/org/apache/lens/client/LensMetadataClient.java
@@ -138,11 +138,10 @@ public class LensMetadataClient {
public APIResult dropDatabase(String database, boolean cascade) {
WebTarget target = getMetastoreWebTarget();
- APIResult result = target.path("databases").path(database)
+ return target.path("databases").path(database)
.queryParam("sessionid", this.connection.getSessionHandle())
.queryParam("cascade", cascade)
.request().delete(APIResult.class);
- return result;
}
public APIResult dropDatabase(String database) {
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/2a61a7b5/lens-client/src/test/java/org/apache/lens/client/TestLensClient.java
----------------------------------------------------------------------
diff --git a/lens-client/src/test/java/org/apache/lens/client/TestLensClient.java b/lens-client/src/test/java/org/apache/lens/client/TestLensClient.java
index 24f3473..35d52db 100644
--- a/lens-client/src/test/java/org/apache/lens/client/TestLensClient.java
+++ b/lens-client/src/test/java/org/apache/lens/client/TestLensClient.java
@@ -78,7 +78,7 @@ public class TestLensClient extends LensAllApplicationJerseyTest {
"current database");
client.createDatabase("testclientdb", true);
Assert.assertTrue(client.getAllDatabases().contains("testclientdb"));
- client.dropDatabase("testclientdb");
+ client.dropDatabase("testclientdb", false);
Assert.assertFalse(client.getAllDatabases().contains("testclientdb"));
}
}