You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sqoop.apache.org by ja...@apache.org on 2013/07/01 19:27:46 UTC
git commit: SQOOP-675: Sqoop2: Substitute submission command with top
level commands start, stop and status
Updated Branches:
refs/heads/sqoop2 aa8e1e779 -> 214cde024
SQOOP-675: Sqoop2: Substitute submission command with top level commands start, stop and status
(Mengwei Ding via Jarek Jarcec Cecho)
Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/214cde02
Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/214cde02
Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/214cde02
Branch: refs/heads/sqoop2
Commit: 214cde024a4110b0af39f5029dd260bdb6c420ec
Parents: aa8e1e7
Author: Jarek Jarcec Cecho <ja...@apache.org>
Authored: Mon Jul 1 10:24:42 2013 -0700
Committer: Jarek Jarcec Cecho <ja...@apache.org>
Committed: Mon Jul 1 10:24:42 2013 -0700
----------------------------------------------------------------------
.../apache/sqoop/client/core/ClientError.java | 4 +
.../org/apache/sqoop/client/core/Constants.java | 35 +++++---
.../apache/sqoop/client/shell/SqoopShell.java | 4 +-
.../apache/sqoop/client/shell/StartCommand.java | 58 ++++++++++++
.../sqoop/client/shell/StartJobFunction.java | 89 +++++++++++++++++++
.../sqoop/client/shell/StatusCommand.java | 56 ++++++++++++
.../sqoop/client/shell/StatusJobFunction.java | 55 ++++++++++++
.../apache/sqoop/client/shell/StopCommand.java | 54 ++++++++++++
.../sqoop/client/shell/StopJobFunction.java | 53 +++++++++++
.../sqoop/client/shell/SubmissionCommand.java | 72 ---------------
.../client/shell/SubmissionStartFunction.java | 92 --------------------
.../client/shell/SubmissionStatusFunction.java | 53 -----------
.../client/shell/SubmissionStopFunction.java | 56 ------------
.../main/resources/client-resource.properties | 8 +-
docs/src/site/sphinx/CommandLineClient.rst | 48 +++++-----
15 files changed, 423 insertions(+), 314 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/sqoop/blob/214cde02/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 944fb49..d96f44e 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
@@ -47,6 +47,10 @@ public enum ClientError implements ErrorCode {
/** Polling time of submission status cannot be negative */
CLIENT_0008("Polling time of submission status cannot be negative"),
+
+ /** Job Submission : Cannot sleep */
+ CLIENT_0009("Cannot sleep"),
+
;
private final String message;
http://git-wip-us.apache.org/repos/asf/sqoop/blob/214cde02/client/src/main/java/org/apache/sqoop/client/core/Constants.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/core/Constants.java b/client/src/main/java/org/apache/sqoop/client/core/Constants.java
index 085fcdb..b7b0436 100644
--- a/client/src/main/java/org/apache/sqoop/client/core/Constants.java
+++ b/client/src/main/java/org/apache/sqoop/client/core/Constants.java
@@ -91,12 +91,18 @@ public class Constants {
public static final String CMD_SHOW = "show";
public static final String CMD_SHOW_SC = "\\sh";
- public static final String CMD_SUBMISSION = "submission";
- public static final String CMD_SUBMISSION_SC = "\\sub";
-
public static final String CMD_UPDATE = "update";
public static final String CMD_UPDATE_SC = "\\up";
+ public static final String CMD_START = "start";
+ public static final String CMD_START_SC = "\\sta";
+
+ public static final String CMD_STOP = "stop";
+ public static final String CMD_STOP_SC = "\\stp";
+
+ public static final String CMD_STATUS = "status";
+ public static final String CMD_STATUS_SC = "\\stu";
+
public static final String FN_CONNECTION = "connection";
public static final String FN_JOB = "job";
public static final String FN_SUBMISSION = "submission";
@@ -105,17 +111,16 @@ public class Constants {
public static final String FN_CONNECTOR = "connector";
public static final String FN_VERSION = "version";
public static final String FN_FRAMEWORK = "framework";
- public static final String FN_START = "start";
- public static final String FN_STOP = "stop";
- public static final String FN_STATUS = "status";
public static final String PRE_CLONE = "Clone";
public static final String PRE_CREATE = "Create";
public static final String PRE_DELETE = "Delete";
public static final String PRE_SET = "Set";
public static final String PRE_SHOW = "Show";
- public static final String PRE_SUBMISSION = "Submission";
public static final String PRE_UPDATE = "Update";
+ public static final String PRE_START = "Start";
+ public static final String PRE_STATUS = "Status";
+ public static final String PRE_STOP = "Stop";
public static final String SUF_INFO = "Info";
@@ -311,6 +316,17 @@ public class Constants {
public static final String RES_SHOW_PROMPT_VERSION_PROTOCOL =
"show.prompt_version_protocol";
+ public static final String RES_START_USAGE =
+ "start.usage";
+
+ public static final String RES_STATUS_USAGE =
+ "status.usage";
+ public static final String RES_PROMPT_SYNCHRONOUS =
+ "start.prompt_synchronous";
+
+ public static final String RES_STOP_USAGE =
+ "stop.usage";
+
public static final String RES_SQOOP_SHELL_BANNER =
"sqoop.shell_banner";
public static final String RES_SQOOP_PROMPT_SHELL_LOADRC =
@@ -318,11 +334,6 @@ public class Constants {
public static final String RES_SQOOP_PROMPT_SHELL_LOADEDRC =
"sqoop.prompt_shell_loadedrc";
- public static final String RES_SUBMISSION_USAGE =
- "submission.usage";
- public static final String RES_PROMPT_SYNCHRONOUS =
- "submission.prompt_synchronous";
-
public static final String RES_UPDATE_USAGE =
"update.usage";
public static final String RES_UPDATE_UPDATING_CONN =
http://git-wip-us.apache.org/repos/asf/sqoop/blob/214cde02/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 83f1c4f..aa87f20 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
@@ -94,7 +94,9 @@ public final class SqoopShell {
shell.register(new DeleteCommand(shell));
shell.register(new UpdateCommand(shell));
shell.register(new CloneCommand(shell));
- shell.register(new SubmissionCommand(shell));
+ shell.register(new StartCommand(shell));
+ shell.register(new StopCommand(shell));
+ shell.register(new StatusCommand(shell));
// Configure shared shell io object
setIo(shell.getIo());
http://git-wip-us.apache.org/repos/asf/sqoop/blob/214cde02/client/src/main/java/org/apache/sqoop/client/shell/StartCommand.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/shell/StartCommand.java b/client/src/main/java/org/apache/sqoop/client/shell/StartCommand.java
new file mode 100644
index 0000000..7293f56
--- /dev/null
+++ b/client/src/main/java/org/apache/sqoop/client/shell/StartCommand.java
@@ -0,0 +1,58 @@
+/**
+ * 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.sqoop.client.shell;
+
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.apache.sqoop.client.core.Constants;
+import org.codehaus.groovy.tools.shell.Shell;
+
+import static org.apache.sqoop.client.shell.ShellEnvironment.printlnResource;
+
+public class StartCommand extends SqoopCommand {
+ public static final Logger LOG = Logger.getLogger(StartCommand.class);
+
+ private StartJobFunction startJobFunction;
+
+ @SuppressWarnings("static-access")
+ protected StartCommand(Shell shell) {
+ super(shell, Constants.CMD_START, Constants.CMD_START_SC,
+ new String[] {Constants.FN_JOB}, Constants.PRE_START, null);
+ }
+
+ @Override
+ public Object executeCommand(List args) {
+ if (args.size() == 0) {
+ printlnResource(Constants.RES_START_USAGE, getUsage());
+ return null;
+ }
+
+ String func = (String) args.get(0);
+ if (func.equals(Constants.FN_JOB)) {
+ if (startJobFunction == null) {
+ startJobFunction = new StartJobFunction();
+ }
+ return startJobFunction.execute(args);
+ } else {
+ printlnResource(Constants.RES_FUNCTION_UNKNOWN, func);
+ }
+
+ return null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/214cde02/client/src/main/java/org/apache/sqoop/client/shell/StartJobFunction.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/shell/StartJobFunction.java b/client/src/main/java/org/apache/sqoop/client/shell/StartJobFunction.java
new file mode 100644
index 0000000..2e1c8d3
--- /dev/null
+++ b/client/src/main/java/org/apache/sqoop/client/shell/StartJobFunction.java
@@ -0,0 +1,89 @@
+/**
+ * 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.sqoop.client.shell;
+
+import static org.apache.sqoop.client.shell.ShellEnvironment.client;
+import static org.apache.sqoop.client.shell.ShellEnvironment.getPollTimeout;
+import static org.apache.sqoop.client.shell.ShellEnvironment.resourceString;
+
+import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.OptionBuilder;
+import org.apache.log4j.Logger;
+import org.apache.sqoop.client.SubmissionCallback;
+import org.apache.sqoop.client.core.ClientError;
+import org.apache.sqoop.client.core.Constants;
+import org.apache.sqoop.client.utils.SubmissionDisplayer;
+import org.apache.sqoop.common.SqoopException;
+import org.apache.sqoop.model.MSubmission;
+
+public class StartJobFunction extends SqoopFunction {
+ public static final Logger LOG = Logger.getLogger(StartJobFunction.class);
+
+ @SuppressWarnings("static-access")
+ public StartJobFunction() {
+ this.addOption(OptionBuilder.hasArg().withArgName(Constants.OPT_JID)
+ .withDescription(resourceString(Constants.RES_PROMPT_JOB_ID))
+ .withLongOpt(Constants.OPT_JID)
+ .create(Constants.OPT_JID_CHAR));
+ this.addOption(OptionBuilder
+ .withDescription(resourceString(Constants.RES_PROMPT_SYNCHRONOUS))
+ .withLongOpt(Constants.OPT_SYNCHRONOUS)
+ .create(Constants.OPT_SYNCHRONOUS_CHAR));
+ }
+
+ @Override
+ public Object executeFunction(CommandLine line) {
+ // Poll until finished
+ if (line.hasOption(Constants.OPT_SYNCHRONOUS) && line.hasOption(Constants.OPT_JID)) {
+ long pollTimeout = getPollTimeout();
+ SubmissionCallback callback = new SubmissionCallback() {
+ @Override
+ public void submitted(MSubmission submission) {
+ SubmissionDisplayer.displayHeader(submission);
+ SubmissionDisplayer.displayProgress(submission);
+ }
+
+ @Override
+ public void updated(MSubmission submission) {
+ SubmissionDisplayer.displayProgress(submission);
+ }
+
+ @Override
+ public void finished(MSubmission submission) {
+ SubmissionDisplayer.displayFooter(submission);
+ }
+ };
+
+ try {
+ client.startSubmission(getLong(line, Constants.OPT_JID), callback, pollTimeout);
+ } catch (InterruptedException e) {
+ throw new SqoopException(ClientError.CLIENT_0009, e);
+ }
+ } else if (line.hasOption(Constants.OPT_JID)) {
+ MSubmission submission = client.startSubmission(getLong(line, Constants.OPT_JID));
+ if(submission.getStatus().isFailure()) {
+ SubmissionDisplayer.displayFooter(submission);
+ } else {
+ SubmissionDisplayer.displayHeader(submission);
+ SubmissionDisplayer.displayProgress(submission);
+ }
+ }
+
+ return null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/214cde02/client/src/main/java/org/apache/sqoop/client/shell/StatusCommand.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/shell/StatusCommand.java b/client/src/main/java/org/apache/sqoop/client/shell/StatusCommand.java
new file mode 100644
index 0000000..5aab035
--- /dev/null
+++ b/client/src/main/java/org/apache/sqoop/client/shell/StatusCommand.java
@@ -0,0 +1,56 @@
+/**
+ * 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.sqoop.client.shell;
+
+import java.util.List;
+
+import org.apache.sqoop.client.core.Constants;
+import org.codehaus.groovy.tools.shell.Shell;
+
+import static org.apache.sqoop.client.shell.ShellEnvironment.printlnResource;
+
+public class StatusCommand extends SqoopCommand {
+
+ private StatusJobFunction statusJobFunction;
+
+ @SuppressWarnings("static-access")
+ protected StatusCommand(Shell shell) {
+ super(shell, Constants.CMD_STATUS, Constants.CMD_STATUS_SC,
+ new String[] { Constants.FN_JOB }, Constants.PRE_STATUS, null);
+ }
+
+ @Override
+ public Object executeCommand(List args) {
+ if (args.size() == 0) {
+ printlnResource(Constants.RES_STATUS_USAGE, getUsage());
+ return null;
+ }
+
+ String func = (String) args.get(0);
+ if (func.equals(Constants.FN_JOB)) {
+ if (statusJobFunction == null) {
+ statusJobFunction = new StatusJobFunction();
+ }
+ return statusJobFunction.execute(args);
+ } else {
+ printlnResource(Constants.RES_FUNCTION_UNKNOWN, func);
+ }
+
+ return null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/214cde02/client/src/main/java/org/apache/sqoop/client/shell/StatusJobFunction.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/shell/StatusJobFunction.java b/client/src/main/java/org/apache/sqoop/client/shell/StatusJobFunction.java
new file mode 100644
index 0000000..b854a90
--- /dev/null
+++ b/client/src/main/java/org/apache/sqoop/client/shell/StatusJobFunction.java
@@ -0,0 +1,55 @@
+/**
+ * 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.sqoop.client.shell;
+
+import static org.apache.sqoop.client.shell.ShellEnvironment.client;
+import static org.apache.sqoop.client.shell.ShellEnvironment.resourceString;
+
+import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.OptionBuilder;
+import org.apache.sqoop.client.core.Constants;
+import org.apache.sqoop.client.utils.SubmissionDisplayer;
+import org.apache.sqoop.model.MSubmission;
+import org.apache.sqoop.submission.SubmissionStatus;
+
+public class StatusJobFunction extends SqoopFunction{
+
+ @SuppressWarnings("static-access")
+ public StatusJobFunction() {
+ this.addOption(OptionBuilder.hasArg().withArgName(Constants.OPT_JID)
+ .withDescription(resourceString(Constants.RES_PROMPT_JOB_ID))
+ .withLongOpt(Constants.OPT_JID)
+ .create(Constants.OPT_JID_CHAR));
+ }
+
+ @Override
+ public Object executeFunction(CommandLine line) {
+ if (line.hasOption(Constants.OPT_JID)) {
+ MSubmission submission = client.getSubmissionStatus(getLong(line, Constants.OPT_JID));
+ if(submission.getStatus().isFailure() || submission.getStatus().equals(SubmissionStatus.SUCCEEDED)) {
+ SubmissionDisplayer.displayHeader(submission);
+ SubmissionDisplayer.displayFooter(submission);
+ } else {
+ SubmissionDisplayer.displayHeader(submission);
+ SubmissionDisplayer.displayProgress(submission);
+ }
+ }
+
+ return null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/214cde02/client/src/main/java/org/apache/sqoop/client/shell/StopCommand.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/shell/StopCommand.java b/client/src/main/java/org/apache/sqoop/client/shell/StopCommand.java
new file mode 100644
index 0000000..154c58e
--- /dev/null
+++ b/client/src/main/java/org/apache/sqoop/client/shell/StopCommand.java
@@ -0,0 +1,54 @@
+/**
+ * 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.sqoop.client.shell;
+
+import java.util.List;
+
+import org.apache.sqoop.client.core.Constants;
+import org.codehaus.groovy.tools.shell.Shell;
+
+import static org.apache.sqoop.client.shell.ShellEnvironment.printlnResource;
+
+public class StopCommand extends SqoopCommand {
+
+ private StopJobFunction stopJobFunction;
+
+ @SuppressWarnings("static-access")
+ protected StopCommand(Shell shell) {
+ super(shell, Constants.CMD_STOP, Constants.CMD_STOP_SC,
+ new String[] { Constants.FN_JOB }, Constants.PRE_STOP, null);
+ }
+ @Override
+ public Object executeCommand(List args) {
+ if (args.size() == 0) {
+ printlnResource(Constants.RES_STOP_USAGE, getUsage());
+ return null;
+ }
+
+ String func = (String) args.get(0);
+ if (func.equals(Constants.FN_JOB)) {
+ if (stopJobFunction == null) {
+ stopJobFunction = new StopJobFunction();
+ }
+ return stopJobFunction.execute(args);
+ } else {
+ printlnResource(Constants.RES_FUNCTION_UNKNOWN, func);
+ }
+ return null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/214cde02/client/src/main/java/org/apache/sqoop/client/shell/StopJobFunction.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/shell/StopJobFunction.java b/client/src/main/java/org/apache/sqoop/client/shell/StopJobFunction.java
new file mode 100644
index 0000000..49ab461
--- /dev/null
+++ b/client/src/main/java/org/apache/sqoop/client/shell/StopJobFunction.java
@@ -0,0 +1,53 @@
+/**
+ * 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.sqoop.client.shell;
+
+import static org.apache.sqoop.client.shell.ShellEnvironment.client;
+import static org.apache.sqoop.client.shell.ShellEnvironment.resourceString;
+
+import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.OptionBuilder;
+import org.apache.sqoop.client.core.Constants;
+import org.apache.sqoop.client.utils.SubmissionDisplayer;
+import org.apache.sqoop.model.MSubmission;
+
+public class StopJobFunction extends SqoopFunction {
+
+ @SuppressWarnings("static-access")
+ public StopJobFunction() {
+ this.addOption(OptionBuilder.hasArg().withArgName(Constants.OPT_JID)
+ .withDescription(resourceString(Constants.RES_PROMPT_JOB_ID))
+ .withLongOpt(Constants.OPT_JID)
+ .create(Constants.OPT_JID_CHAR));
+ }
+
+ @Override
+ public Object executeFunction(CommandLine line) {
+ if (line.hasOption(Constants.OPT_JID)) {
+ MSubmission submission = client.stopSubmission(getLong(line, Constants.OPT_JID));
+ if(submission.getStatus().isFailure()) {
+ SubmissionDisplayer.displayFooter(submission);
+ } else {
+ SubmissionDisplayer.displayHeader(submission);
+ SubmissionDisplayer.displayProgress(submission);
+ }
+ }
+
+ return null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/214cde02/client/src/main/java/org/apache/sqoop/client/shell/SubmissionCommand.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/shell/SubmissionCommand.java b/client/src/main/java/org/apache/sqoop/client/shell/SubmissionCommand.java
deleted file mode 100644
index 993bbde..0000000
--- a/client/src/main/java/org/apache/sqoop/client/shell/SubmissionCommand.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
- * 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.sqoop.client.shell;
-
-import org.apache.sqoop.client.core.Constants;
-import org.codehaus.groovy.tools.shell.Shell;
-
-import java.text.MessageFormat;
-import java.util.List;
-
-import static org.apache.sqoop.client.shell.ShellEnvironment.*;
-
-/**
- *
- */
-public class SubmissionCommand extends SqoopCommand {
-
- private SubmissionStartFunction startFunction;
- private SubmissionStopFunction stopFunction;
- private SubmissionStatusFunction statusFunction;
-
- public SubmissionCommand(Shell shell) {
- super(shell, Constants.CMD_SUBMISSION, Constants.CMD_SUBMISSION_SC,
- new String[] {Constants.FN_START, Constants.FN_STOP,
- Constants.FN_STATUS},
- Constants.PRE_SUBMISSION, Constants.SUF_INFO);
- }
-
- public Object executeCommand(List args) {
- String usageMsg = MessageFormat.format(resource.getString(Constants.RES_SUBMISSION_USAGE), getUsage());
- if (args.size() == 0) {
- println(usageMsg);
- return null;
- }
-
- String func = (String)args.get(0);
- if (func.equals(Constants.FN_START)) {
- if (startFunction == null) {
- startFunction = new SubmissionStartFunction();
- }
- return startFunction.execute(args);
- } else if (func.equals(Constants.FN_STOP)) {
- if (stopFunction == null) {
- stopFunction = new SubmissionStopFunction();
- }
- return stopFunction.execute(args);
- } else if (func.equals(Constants.FN_STATUS)) {
- if (statusFunction == null) {
- statusFunction = new SubmissionStatusFunction();
- }
- return statusFunction.execute(args);
- } else {
- printlnResource(Constants.RES_FUNCTION_UNKNOWN, func);
- return null;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/214cde02/client/src/main/java/org/apache/sqoop/client/shell/SubmissionStartFunction.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/shell/SubmissionStartFunction.java b/client/src/main/java/org/apache/sqoop/client/shell/SubmissionStartFunction.java
deleted file mode 100644
index 04bcf45..0000000
--- a/client/src/main/java/org/apache/sqoop/client/shell/SubmissionStartFunction.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
- * 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.sqoop.client.shell;
-
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.OptionBuilder;
-import org.apache.log4j.Logger;
-import org.apache.sqoop.client.SubmissionCallback;
-import org.apache.sqoop.client.core.Constants;
-import org.apache.sqoop.client.utils.SubmissionDisplayer;
-import org.apache.sqoop.model.MSubmission;
-
-import static org.apache.sqoop.client.shell.ShellEnvironment.*;
-
-/**
- * Class used to perform the submission start function
- */
-public class SubmissionStartFunction extends SqoopFunction {
- public static final Logger LOG = Logger.getLogger(SubmissionStartFunction.class);
-
- @SuppressWarnings("static-access")
- public SubmissionStartFunction() {
- this.addOption(OptionBuilder
- .withDescription(resourceString(Constants.RES_PROMPT_JOB_ID))
- .withLongOpt(Constants.OPT_JID)
- .hasArg()
- .create(Constants.OPT_JID_CHAR));
- this.addOption(OptionBuilder
- .withDescription(resourceString(Constants.RES_PROMPT_SYNCHRONOUS))
- .withLongOpt(Constants.OPT_SYNCHRONOUS)
- .create(Constants.OPT_SYNCHRONOUS_CHAR));
- }
-
- public Object executeFunction(CommandLine line) {
- if (!line.hasOption(Constants.OPT_JID)) {
- printlnResource(Constants.RES_ARGS_JID_MISSING);
- return null;
- }
-
- // Poll until finished
- if (line.hasOption(Constants.OPT_SYNCHRONOUS)) {
- long pollTimeout = getPollTimeout();
- SubmissionCallback callback = new SubmissionCallback() {
- @Override
- public void submitted(MSubmission submission) {
- SubmissionDisplayer.displayHeader(submission);
- SubmissionDisplayer.displayProgress(submission);
- }
-
- @Override
- public void updated(MSubmission submission) {
- SubmissionDisplayer.displayProgress(submission);
- }
-
- @Override
- public void finished(MSubmission submission) {
- SubmissionDisplayer.displayFooter(submission);
- }
- };
-
- try {
- client.startSubmission(getLong(line, Constants.OPT_JID), callback, pollTimeout);
- } catch (InterruptedException e) {
- LOG.error("Could not sleep");
- }
- } else {
- MSubmission submission = client.startSubmission(getLong(line, Constants.OPT_JID));
- if(submission.getStatus().isFailure()) {
- SubmissionDisplayer.displayFooter(submission);
- } else {
- SubmissionDisplayer.displayHeader(submission);
- SubmissionDisplayer.displayProgress(submission);
- }
- }
- return null;
- }
-}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/214cde02/client/src/main/java/org/apache/sqoop/client/shell/SubmissionStatusFunction.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/shell/SubmissionStatusFunction.java b/client/src/main/java/org/apache/sqoop/client/shell/SubmissionStatusFunction.java
deleted file mode 100644
index 29144d1..0000000
--- a/client/src/main/java/org/apache/sqoop/client/shell/SubmissionStatusFunction.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * 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.sqoop.client.shell;
-
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.OptionBuilder;
-import org.apache.sqoop.client.core.Constants;
-import org.apache.sqoop.client.utils.SubmissionDisplayer;
-import org.apache.sqoop.model.MSubmission;
-import org.apache.sqoop.submission.SubmissionStatus;
-
-import static org.apache.sqoop.client.shell.ShellEnvironment.*;
-
-/**
- * Class used to print submission status function
- */
-public class SubmissionStatusFunction extends SqoopFunction {
- @SuppressWarnings("static-access")
- public SubmissionStatusFunction() {
- this.addOption(OptionBuilder
- .withDescription(resourceString(Constants.RES_PROMPT_JOB_ID))
- .withLongOpt(Constants.OPT_JID)
- .hasArg()
- .create(Constants.OPT_JID_CHAR));
- }
-
- public Object executeFunction(CommandLine line) {
- if (!line.hasOption(Constants.OPT_JID)) {
- printlnResource(Constants.RES_ARGS_JID_MISSING);
- return null;
- }
-
- MSubmission submission = client.getSubmissionStatus(getLong(line, Constants.OPT_JID));
- SubmissionDisplayer.displaySubmission(submission);
-
- return null;
- }
-}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/214cde02/client/src/main/java/org/apache/sqoop/client/shell/SubmissionStopFunction.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/sqoop/client/shell/SubmissionStopFunction.java b/client/src/main/java/org/apache/sqoop/client/shell/SubmissionStopFunction.java
deleted file mode 100644
index c407d01..0000000
--- a/client/src/main/java/org/apache/sqoop/client/shell/SubmissionStopFunction.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * 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.sqoop.client.shell;
-
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.OptionBuilder;
-import org.apache.sqoop.client.core.Constants;
-import org.apache.sqoop.client.utils.SubmissionDisplayer;
-import org.apache.sqoop.model.MSubmission;
-
-import static org.apache.sqoop.client.shell.ShellEnvironment.*;
-
-/**
- * Class used to perform the submission stop function
- */
-public class SubmissionStopFunction extends SqoopFunction {
- @SuppressWarnings("static-access")
- public SubmissionStopFunction() {
- this.addOption(OptionBuilder
- .withDescription(resourceString(Constants.RES_PROMPT_JOB_ID))
- .withLongOpt(Constants.OPT_JID)
- .hasArg()
- .create(Constants.OPT_JID_CHAR));
- }
-
- public Object executeFunction(CommandLine line) {
- if (!line.hasOption(Constants.OPT_JID)) {
- printlnResource(Constants.RES_ARGS_JID_MISSING);
- return null;
- }
-
- MSubmission submission = client.stopSubmission(getLong(line, Constants.OPT_JID));
- if(submission.getStatus().isFailure()) {
- SubmissionDisplayer.displayFooter(submission);
- } else {
- SubmissionDisplayer.displayHeader(submission);
- SubmissionDisplayer.displayProgress(submission);
- }
- return null;
- }
-}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/214cde02/client/src/main/resources/client-resource.properties
----------------------------------------------------------------------
diff --git a/client/src/main/resources/client-resource.properties b/client/src/main/resources/client-resource.properties
index a27d246..5537a8e 100644
--- a/client/src/main/resources/client-resource.properties
+++ b/client/src/main/resources/client-resource.properties
@@ -169,8 +169,12 @@ sqoop.shell_banner = @|green Sqoop Shell:|@ Type '@|bold help|@' or '@|bold \\h|
sqoop.prompt_shell_loadrc = Loading resource file {0}
sqoop.prompt_shell_loadedrc = Resource file loaded.
-submission.usage = Usage: submission {0}
-submission.prompt_synchronous = Wait for submission to finish
+start.usage = Usage: start {0}
+start.prompt_synchronous = Wait for submission to finish
+
+stop.usage = Usage: stop {0}
+
+status.usage = Usage: status {0}
# Various Table headers
table.header.id = Id
http://git-wip-us.apache.org/repos/asf/sqoop/blob/214cde02/docs/src/site/sphinx/CommandLineClient.rst
----------------------------------------------------------------------
diff --git a/docs/src/site/sphinx/CommandLineClient.rst b/docs/src/site/sphinx/CommandLineClient.rst
index a14898f..22d6d47 100644
--- a/docs/src/site/sphinx/CommandLineClient.rst
+++ b/docs/src/site/sphinx/CommandLineClient.rst
@@ -447,26 +447,13 @@ Example: ::
clone job --jid 1
+Start Command
+-------------
-Submission Command
-------------------
-
-Submission command is entry point for executing actual data transfers. It allows you to start, stop and retrieve status of currently running jobs.
-
-Available functions:
-
-+----------------+-------------------------------------------------+
-| Function | Description |
-+================+=================================================+
-| ``start`` | Start job |
-+----------------+-------------------------------------------------+
-| ``stop`` | Interrupt running job |
-+----------------+-------------------------------------------------+
-| ``status`` | Retrieve status for given job |
-+----------------+-------------------------------------------------+
+Start command will begin execution of an existing Sqoop job.
-Submission Start Function
-~~~~~~~~~~~~~~~~~~~~~~~~~
+Start Job Function
+~~~~~~~~~~~~~~~~~~
Start job (submit new submission). Starting already running job is considered as invalid operation.
@@ -480,12 +467,16 @@ Start job (submit new submission). Starting already running job is considered as
Example: ::
- submission start --jid 1
- submission start --jid 1 --synchronous
+ start job --jid 1
+ start job --jid 1 --synchronous
+Stop Command
+------------
-Submission Stop Function
-~~~~~~~~~~~~~~~~~~~~~~~~~
+Stop command will interrupt an job execution.
+
+Stop Job Function
+~~~~~~~~~~~~~~~~~
Interrupt running job.
@@ -497,10 +488,15 @@ Interrupt running job.
Example: ::
- submission stop --jid 1
+ stop job --jid 1
-Submission Status Function
-~~~~~~~~~~~~~~~~~~~~~~~~~~
+Status Command
+--------------
+
+Status command will retrieve the last status of a job.
+
+Status Job Function
+~~~~~~~~~~~~~~~~~~~
Retrieve last status for given job.
@@ -512,5 +508,5 @@ Retrieve last status for given job.
Example: ::
- submission status --jid 1
+ status job --jid 1