You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sqoop.apache.org by ch...@apache.org on 2013/02/22 21:19:23 UTC

[1/3] git commit: SQOOP-884: Disable interactive client commands in batch mode

SQOOP-884: Disable interactive client commands in batch mode

(Jarcec Cecho via Cheolsoo Park)


Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/339069f3
Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/339069f3
Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/339069f3

Branch: refs/heads/sqoop2
Commit: 339069f322741b2408d58142106792a29ca517e6
Parents: 4e62986
Author: Cheolsoo Park <ch...@apache.org>
Authored: Fri Feb 22 12:04:21 2013 -0800
Committer: Cheolsoo Park <ch...@apache.org>
Committed: Fri Feb 22 12:19:06 2013 -0800

----------------------------------------------------------------------
 .../org/apache/sqoop/client/core/ClientError.java  |    3 +++
 .../org/apache/sqoop/client/core/Environment.java  |   10 ++++++++++
 .../apache/sqoop/client/shell/CloneCommand.java    |    8 ++++++--
 .../apache/sqoop/client/shell/CreateCommand.java   |    8 ++++++--
 .../org/apache/sqoop/client/shell/SqoopShell.java  |    7 +++++++
 .../apache/sqoop/client/shell/UpdateCommand.java   |    8 ++++++--
 6 files changed, 38 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sqoop/blob/339069f3/client/src/main/java/org/apache/sqoop/client/core/ClientError.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/core/ClientError.java b/client/src/main/java/org/apache/sqoop/client/core/ClientError.java
index fd3b97d..179dc55 100644
--- a/client/src/main/java/org/apache/sqoop/client/core/ClientError.java
+++ b/client/src/main/java/org/apache/sqoop/client/core/ClientError.java
@@ -42,6 +42,9 @@ public enum ClientError implements ErrorCode {
   /** There occurred exception on server side **/
   CLIENT_0006("Server has returned exception"),
 
+  /** Command not compatible with batch mode */
+  CLIENT_0007("Command not compatible with batch mode"),
+
   ;
 
   private final String message;

http://git-wip-us.apache.org/repos/asf/sqoop/blob/339069f3/client/src/main/java/org/apache/sqoop/client/core/Environment.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/core/Environment.java b/client/src/main/java/org/apache/sqoop/client/core/Environment.java
index c9e4e2a..5d1af26 100644
--- a/client/src/main/java/org/apache/sqoop/client/core/Environment.java
+++ b/client/src/main/java/org/apache/sqoop/client/core/Environment.java
@@ -32,6 +32,8 @@ public final class Environment
 
   private static boolean verbose;
 
+  private static boolean interactive;
+
   private static final String HOST_DEFAULT = "localhost";
   private static final String PORT_DEFAULT = "12000";
   private static final String WEBAPP_DEFAULT = "sqoop";
@@ -88,4 +90,12 @@ public final class Environment
   public static boolean isVerboose() {
     return verbose;
   }
+
+  public static void setInteractive(boolean newValue) {
+    interactive = newValue;
+  }
+
+  public static boolean isInteractive() {
+    return interactive;
+  }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/339069f3/client/src/main/java/org/apache/sqoop/client/shell/CloneCommand.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/shell/CloneCommand.java b/client/src/main/java/org/apache/sqoop/client/shell/CloneCommand.java
index a127d61..abec66b 100644
--- a/client/src/main/java/org/apache/sqoop/client/shell/CloneCommand.java
+++ b/client/src/main/java/org/apache/sqoop/client/shell/CloneCommand.java
@@ -19,6 +19,7 @@ package org.apache.sqoop.client.shell;
 
 import org.apache.sqoop.client.core.ClientError;
 import org.apache.sqoop.client.core.Constants;
+import org.apache.sqoop.client.core.Environment;
 import org.apache.sqoop.common.SqoopException;
 import org.codehaus.groovy.tools.shell.Shell;
 
@@ -43,8 +44,11 @@ public class CloneCommand extends SqoopCommand {
   }
 
   public Object executeCommand(List args) {
-    String usageMsg = MessageFormat.format(getResource().getString(Constants
-        .RES_CLONE_USAGE), getUsage());
+    if(!Environment.isInteractive()) {
+      throw new SqoopException(ClientError.CLIENT_0007, "clone");
+    }
+
+    String usageMsg = MessageFormat.format(getResource().getString(Constants.RES_CLONE_USAGE), getUsage());
 
     if (args.size() == 0) {
       io.out.println(usageMsg);

http://git-wip-us.apache.org/repos/asf/sqoop/blob/339069f3/client/src/main/java/org/apache/sqoop/client/shell/CreateCommand.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/shell/CreateCommand.java b/client/src/main/java/org/apache/sqoop/client/shell/CreateCommand.java
index 6cd2ff5..f4872d2 100644
--- a/client/src/main/java/org/apache/sqoop/client/shell/CreateCommand.java
+++ b/client/src/main/java/org/apache/sqoop/client/shell/CreateCommand.java
@@ -19,6 +19,7 @@ package org.apache.sqoop.client.shell;
 
 import org.apache.sqoop.client.core.ClientError;
 import org.apache.sqoop.client.core.Constants;
+import org.apache.sqoop.client.core.Environment;
 import org.apache.sqoop.common.SqoopException;
 import org.codehaus.groovy.tools.shell.Shell;
 
@@ -42,8 +43,11 @@ public class CreateCommand extends SqoopCommand {
   }
 
   public Object executeCommand(List args) {
-    String usageMsg = MessageFormat.format(getResource().getString(Constants
-        .RES_CREATE_USAGE), getUsage());
+    if(!Environment.isInteractive()) {
+      throw new SqoopException(ClientError.CLIENT_0007, "create");
+    }
+
+    String usageMsg = MessageFormat.format(getResource().getString(Constants.RES_CREATE_USAGE), getUsage());
 
     if (args.size() == 0) {
       io.out.println(usageMsg);

http://git-wip-us.apache.org/repos/asf/sqoop/blob/339069f3/client/src/main/java/org/apache/sqoop/client/shell/SqoopShell.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/shell/SqoopShell.java b/client/src/main/java/org/apache/sqoop/client/shell/SqoopShell.java
index 9fb5f03..b4d352c 100644
--- a/client/src/main/java/org/apache/sqoop/client/shell/SqoopShell.java
+++ b/client/src/main/java/org/apache/sqoop/client/shell/SqoopShell.java
@@ -27,6 +27,7 @@ import java.util.Iterator;
 import java.util.ResourceBundle;
 
 import org.apache.sqoop.client.core.Constants;
+import org.apache.sqoop.client.core.Environment;
 import org.apache.sqoop.client.utils.ThrowableDisplayer;
 import org.codehaus.groovy.runtime.MethodClosure;
 import org.codehaus.groovy.tools.shell.Command;
@@ -104,6 +105,9 @@ public final class SqoopShell {
     shell.register(new CloneCommand(shell));
     shell.register(new SubmissionCommand(shell));
 
+    // We're running in batch mode by default
+    Environment.setInteractive(false);
+
     // Let's see if user do have resource file with initial commands that he
     // would like to apply.
     String homeDir = System.getProperty(Constants.PROP_HOMEDIR);
@@ -122,6 +126,9 @@ public final class SqoopShell {
       shell.getIo().out.println(clientResource.getString(Constants
           .RES_SQOOP_SHELL_BANNER));
       shell.getIo().out.println();
+
+      // Switch to interactive mode
+      Environment.setInteractive(true);
       shell.run(args);
 
     } else {

http://git-wip-us.apache.org/repos/asf/sqoop/blob/339069f3/client/src/main/java/org/apache/sqoop/client/shell/UpdateCommand.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/shell/UpdateCommand.java b/client/src/main/java/org/apache/sqoop/client/shell/UpdateCommand.java
index fcf8862..0057efb 100644
--- a/client/src/main/java/org/apache/sqoop/client/shell/UpdateCommand.java
+++ b/client/src/main/java/org/apache/sqoop/client/shell/UpdateCommand.java
@@ -19,6 +19,7 @@ package org.apache.sqoop.client.shell;
 
 import org.apache.sqoop.client.core.ClientError;
 import org.apache.sqoop.client.core.Constants;
+import org.apache.sqoop.client.core.Environment;
 import org.apache.sqoop.common.SqoopException;
 import org.codehaus.groovy.tools.shell.Shell;
 
@@ -41,8 +42,11 @@ public class UpdateCommand extends SqoopCommand {
   }
 
   public Object executeCommand(List args) {
-    String usageMsg = MessageFormat.format(getResource().getString(Constants
-        .RES_UPDATE_USAGE), getUsage());
+    if(!Environment.isInteractive()) {
+      throw new SqoopException(ClientError.CLIENT_0007, "update");
+    }
+
+    String usageMsg = MessageFormat.format(getResource().getString(Constants.RES_UPDATE_USAGE), getUsage());
     if (args.size() == 0) {
       io.out.println(usageMsg);
       io.out.println();