You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by su...@apache.org on 2016/07/19 22:01:53 UTC
[13/50] hadoop git commit: YARN-5339. Fixed "yarn logs" to fail when
a file is passed to -out option instead of a directory. Contributed by Xuan
Gong.
YARN-5339. Fixed "yarn logs" to fail when a file is passed to -out option instead of a directory. Contributed by Xuan Gong.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/d1805052
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/d1805052
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/d1805052
Branch: refs/heads/YARN-2915
Commit: d18050522c5c6bd9e32eb9a1be4ffe2288624c40
Parents: af8f480
Author: Vinod Kumar Vavilapalli <vi...@apache.org>
Authored: Wed Jul 13 14:52:30 2016 -0700
Committer: Vinod Kumar Vavilapalli <vi...@apache.org>
Committed: Wed Jul 13 14:52:30 2016 -0700
----------------------------------------------------------------------
.../apache/hadoop/yarn/client/cli/LogsCLI.java | 10 +++
.../hadoop/yarn/client/cli/TestLogsCLI.java | 65 +++++++++++++++++---
2 files changed, 68 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/d1805052/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/LogsCLI.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/LogsCLI.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/LogsCLI.java
index 31395be..1560557 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/LogsCLI.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/LogsCLI.java
@@ -18,6 +18,7 @@
package org.apache.hadoop.yarn.client.cli;
+import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
import java.util.ArrayList;
@@ -197,6 +198,15 @@ public class LogsCLI extends Configured implements Tool {
return -1;
}
+ if (localDir != null) {
+ File file = new File(localDir);
+ if (file.exists() && file.isFile()) {
+ System.err.println("Invalid value for -out option. "
+ + "Please provide a directory.");
+ return -1;
+ }
+ }
+
LogCLIHelpers logCliHelper = new LogCLIHelpers();
logCliHelper.setConf(getConf());
http://git-wip-us.apache.org/repos/asf/hadoop/blob/d1805052/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestLogsCLI.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestLogsCLI.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestLogsCLI.java
index cb9a663..3fe53d9 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestLogsCLI.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestLogsCLI.java
@@ -711,6 +711,64 @@ public class TestLogsCLI {
}
}
+ @Test (timeout = 5000)
+ public void testLogsCLIWithInvalidArgs() throws Exception {
+ String localDir = "target/SaveLogs";
+ Path localPath = new Path(localDir);
+ Configuration configuration = new Configuration();
+ FileSystem fs = FileSystem.get(configuration);
+ ApplicationId appId = ApplicationId.newInstance(0, 1);
+ YarnClient mockYarnClient =
+ createMockYarnClient(YarnApplicationState.FINISHED,
+ UserGroupInformation.getCurrentUser().getShortUserName());
+ LogsCLI cli = new LogsCLIForTest(mockYarnClient);
+ cli.setConf(configuration);
+
+ // Specify an invalid applicationId
+ int exitCode = cli.run(new String[] {"-applicationId",
+ "123"});
+ assertTrue(exitCode == -1);
+ assertTrue(sysErrStream.toString().contains(
+ "Invalid ApplicationId specified"));
+ sysErrStream.reset();
+
+ // Specify an invalid containerId
+ exitCode = cli.run(new String[] {"-containerId",
+ "123"});
+ assertTrue(exitCode == -1);
+ assertTrue(sysErrStream.toString().contains(
+ "Invalid ContainerId specified"));
+ sysErrStream.reset();
+
+ // Specify show_container_log_info and show_application_log_info
+ // at the same time
+ exitCode = cli.run(new String[] {"-applicationId", appId.toString(),
+ "-show_container_log_info", "-show_application_log_info"});
+ assertTrue(exitCode == -1);
+ assertTrue(sysErrStream.toString().contains("Invalid options. "
+ + "Can only accept one of show_application_log_info/"
+ + "show_container_log_info."));
+ sysErrStream.reset();
+
+ // Specify a file name to the option -out
+ try {
+ fs.mkdirs(localPath);
+ Path tmpFilePath = new Path(localPath, "tmpFile");
+ if (!fs.exists(tmpFilePath)) {
+ fs.createNewFile(tmpFilePath);
+ }
+ exitCode = cli.run(new String[] {"-applicationId",
+ appId.toString(),
+ "-out" , tmpFilePath.toString()});
+ assertTrue(exitCode == -1);
+ assertTrue(sysErrStream.toString().contains(
+ "Invalid value for -out option. Please provide a directory."));
+ } finally {
+ fs.delete(localPath, true);
+ }
+ }
+
+
@Test (timeout = 15000)
public void testSaveContainerLogsLocally() throws Exception {
String remoteLogRootDir = "target/logs/";
@@ -845,13 +903,6 @@ public class TestLogsCLI {
LogsCLI cli = new LogsCLIForTest(mockYarnClient);
cli.setConf(configuration);
- int result = cli.run(new String[] {"-applicationId", appId.toString(),
- "-show_container_log_info", "-show_application_log_info"});
- assertTrue(result == -1);
- assertTrue(sysErrStream.toString().contains("Invalid options. "
- + "Can only accept one of show_application_log_info/"
- + "show_container_log_info."));
-
cli.run(new String[] {"-applicationId", appId.toString(),
"-show_container_log_info"});
assertTrue(sysOutStream.toString().contains(
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org