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

This commit is contained in:
Naganarasimha 2016-12-20 06:36:25 +05:30
parent ef2dd7b78c
commit 358341398a
2 changed files with 16 additions and 1 deletions

View File

@ -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);

View File

@ -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();