@Test (timeout = 15000)
public void testListNodeInfo() throws Exception {

  String remoteLogRootDir = "target/logs/";
  conf.setBoolean(YarnConfiguration.LOG_AGGREGATION_ENABLED, true);
  conf
    .set(YarnConfiguration.NM_REMOTE_APP_LOG_DIR, remoteLogRootDir);
  conf.setBoolean(YarnConfiguration.YARN_ACL_ENABLE, true);
  conf.set(YarnConfiguration.YARN_ADMIN_ACL, "admin");
  ApplicationId appId = ApplicationId.newInstance(0, 1);
  ApplicationAttemptId appAttemptId =
      ApplicationAttemptId.newInstance(appId, 1);
  List<ContainerId> containerIds = new ArrayList<ContainerId>();
  ContainerId containerId1 = ContainerId.newContainerId(
      appAttemptId, 1);
  ContainerId containerId2 = ContainerId.newContainerId(
      appAttemptId, 2);
  containerIds.add(containerId1);
  containerIds.add(containerId2);
  List<NodeId> nodeIds = new ArrayList<NodeId>();
  NodeId nodeId1 = NodeId.newInstance("localhost1", 1234);
  NodeId nodeId2 = NodeId.newInstance("localhost2", 2345);
  nodeIds.add(nodeId1);
  nodeIds.add(nodeId2);
  String rootLogDir = "target/LocalLogs";
  FileSystem fs = FileSystem.get(conf);
  createContainerLogs(conf, remoteLogRootDir, rootLogDir, fs,
      appId, containerIds, nodeIds);
  YarnClient mockYarnClient =
      createMockYarnClient(YarnApplicationState.FINISHED,
      UserGroupInformation.getCurrentUser().getShortUserName());
  LogsCLI cli = new LogsCLIForTest(mockYarnClient);
  cli.setConf(conf);
  cli.run(new String[] { "-applicationId", appId.toString(),
      "-list_nodes" });
  assertTrue(sysOutStream.toString().contains(
      LogAggregationUtils.getNodeString(nodeId1)));
  assertTrue(sysOutStream.toString().contains(
      LogAggregationUtils.getNodeString(nodeId2)));
  sysOutStream.reset();
  fs.delete(new Path(remoteLogRootDir), true);
  fs.delete(new Path(rootLogDir), true);
}