This is an automated email from the ASF dual-hosted git repository. ebadger pushed a commit to branch branch-2.10 in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/branch-2.10 by this push: new a11c606 YARN-10312. Add support for yarn logs -logFile to retain backward compatibility. Contributed by Jim Brennan a11c606 is described below commit a11c6069101af923efb01662b272a179588fb83b Author: Eric Badger <ebad...@verizonmedia.com> AuthorDate: Fri Jun 12 19:21:45 2020 +0000 YARN-10312. Add support for yarn logs -logFile to retain backward compatibility. Contributed by Jim Brennan (cherry picked from commit 73639319422b8443df943cf818b122c1ee2afcf6) --- .../org/apache/hadoop/yarn/client/cli/LogsCLI.java | 14 ++++++++ .../apache/hadoop/yarn/client/cli/TestLogsCLI.java | 37 ++++++++++++++++++++++ 2 files changed, 51 insertions(+) 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 11c3f04..60ff241 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 @@ -100,6 +100,7 @@ public class LogsCLI extends Configured implements Tool { private static final String APP_OWNER_OPTION = "appOwner"; private static final String AM_CONTAINER_OPTION = "am"; private static final String PER_CONTAINER_LOG_FILES_OPTION = "log_files"; + private static final String PER_CONTAINER_LOG_FILES_OLD_OPTION = "logFiles"; private static final String PER_CONTAINER_LOG_FILES_REGEX_OPTION = "log_files_pattern"; private static final String LIST_NODES_OPTION = "list_nodes"; @@ -209,6 +210,13 @@ public class LogsCLI extends Configured implements Tool { } if (commandLine.hasOption(PER_CONTAINER_LOG_FILES_OPTION)) { logFiles = commandLine.getOptionValues(PER_CONTAINER_LOG_FILES_OPTION); + } else { + // For backward compatibility, we need to check for the old form of this + // command line option as well. New form takes precedent. + if (commandLine.hasOption(PER_CONTAINER_LOG_FILES_OLD_OPTION)) { + logFiles = commandLine.getOptionValues( + PER_CONTAINER_LOG_FILES_OLD_OPTION); + } } if (commandLine.hasOption(PER_CONTAINER_LOG_FILES_REGEX_OPTION)) { logFilesRegex = commandLine.getOptionValues( @@ -850,6 +858,12 @@ public class LogsCLI extends Configured implements Tool { logFileOpt.setArgs(Option.UNLIMITED_VALUES); logFileOpt.setArgName("Log File Name"); opts.addOption(logFileOpt); + Option oldLogFileOpt = new Option(PER_CONTAINER_LOG_FILES_OLD_OPTION, true, + "Deprecated name for log_files, please use log_files option instead"); + oldLogFileOpt.setValueSeparator(','); + oldLogFileOpt.setArgs(Option.UNLIMITED_VALUES); + oldLogFileOpt.setArgName("Log File Name"); + opts.addOption(oldLogFileOpt); Option logFileRegexOpt = new Option(PER_CONTAINER_LOG_FILES_REGEX_OPTION, true, "Specify comma-separated value " + "to get matched log files by using java regex. Use \".*\" to " 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 7aa92f3..4e642c3 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 @@ -462,6 +462,43 @@ public class TestLogsCLI { logMessage(containerId3, "stdout1234"))); sysOutStream.reset(); + // Check backward compatibility for -logFiles + exitCode = cli.run(new String[] {"-applicationId", appId.toString(), + "-logFiles", "stdout"}); + assertTrue("Failed with -logFiles", exitCode == 0); + assertFalse("Failed with -logFiles", sysOutStream.toString().contains( + logMessage(containerId1, "syslog"))); + assertFalse("Failed with -logFiles", sysOutStream.toString().contains( + logMessage(containerId2, "syslog"))); + assertFalse("Failed with -logFiles", sysOutStream.toString().contains( + logMessage(containerId3, "syslog"))); + assertTrue("Failed with -logFiles", sysOutStream.toString().contains( + logMessage(containerId3, "stdout"))); + assertFalse("Failed with -logFiles", sysOutStream.toString().contains( + logMessage(containerId3, "stdout1234"))); + sysOutStream.reset(); + + // Check -log_files supercedes -logFiles + exitCode = cli.run(new String[] {"-applicationId", appId.toString(), + "-log_files", "stdout", "-logFiles", "syslog"}); + assertTrue("Failed with -logFiles and -log_files", exitCode == 0); + assertFalse("Failed with -logFiles and -log_files", + sysOutStream.toString().contains( + logMessage(containerId1, "syslog"))); + assertFalse("Failed with -logFiles and -log_files", + sysOutStream.toString().contains( + logMessage(containerId2, "syslog"))); + assertFalse("Failed with -logFiles and -log_files", + sysOutStream.toString().contains( + logMessage(containerId3, "syslog"))); + assertTrue("Failed with -logFiles and -log_files", + sysOutStream.toString().contains( + logMessage(containerId3, "stdout"))); + assertFalse("Failed with -logFiles and -log_files", + sysOutStream.toString().contains( + logMessage(containerId3, "stdout1234"))); + sysOutStream.reset(); + exitCode = cli.run(new String[] {"-applicationId", appId.toString(), "-log_files_pattern", "std*"}); assertTrue(exitCode == 0); --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org