瀏覽代碼

YARN-5524. Yarn live log aggregation does not throw if command line arg is wrong. Contributed by Xuan Gong.

Naganarasimha 8 年之前
父節點
當前提交
358341398a

+ 1 - 1
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/LogsCLI.java

@@ -138,7 +138,7 @@ public class LogsCLI extends Configured implements Tool {
     String localDir = null;
     long bytes = Long.MAX_VALUE;
     try {
-      CommandLine commandLine = parser.parse(opts, args, true);
+      CommandLine commandLine = parser.parse(opts, args, false);
       appIdStr = commandLine.getOptionValue(APPLICATION_ID_OPTION);
       containerIdStr = commandLine.getOptionValue(CONTAINER_ID_OPTION);
       nodeAddress = commandLine.getOptionValue(NODE_ADDRESS_OPTION);

+ 15 - 0
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestLogsCLI.java

@@ -126,6 +126,21 @@ public class TestLogsCLI {
     assertTrue("Should return an error code", exitCode != 0);
   }
 
+  @Test(timeout = 1000l)
+  public void testInvalidOpts() throws Exception {
+    Configuration conf = new YarnConfiguration();
+    YarnClient mockYarnClient = createMockYarnClient(
+        YarnApplicationState.FINISHED,
+        UserGroupInformation.getCurrentUser().getShortUserName());
+    LogsCLI cli = new LogsCLIForTest(mockYarnClient);
+    cli.setConf(conf);
+
+    int exitCode = cli.run( new String[] { "-InvalidOpts"});
+    assertTrue(exitCode == -1);
+    assertTrue(sysErrStream.toString().contains(
+        "options parsing failed: Unrecognized option: -InvalidOpts"));
+  }
+
   @Test(timeout = 5000l)
   public void testInvalidApplicationId() throws Exception {
     Configuration conf = new YarnConfiguration();