@InterfaceAudience.Private @VisibleForTesting void scanActiveLogs() throws IOException { RemoteIterator<FileStatus> iter = fs.listStatusIterator(activeRootPath); while (iter.hasNext()) { FileStatus stat = iter.next(); ApplicationId appId = parseApplicationId(stat.getPath().getName()); if (appId != null) { LOG.debug("scan logs for {} in {}", appId, stat.getPath()); AppLogs logs = getAndSetActiveLog(appId, stat.getPath()); executor.execute(new ActiveLogParser(logs)); } } }
ApplicationId appId = parseApplicationId(dirpath.getName()); boolean shouldClean = (appId != null); RemoteIterator<FileStatus> iter = fs.listStatusIterator(dirpath);
int scanActiveLogs(Path dir) throws IOException { RemoteIterator<FileStatus> iter = list(dir); int logsToScanCount = 0; while (iter.hasNext()) { FileStatus stat = iter.next(); String name = stat.getPath().getName(); ApplicationId appId = parseApplicationId(name); if (appId != null) { LOG.debug("scan logs for {} in {}", appId, stat.getPath()); logsToScanCount++; AppLogs logs = getAndSetActiveLog(appId, stat.getPath()); executor.execute(new ActiveLogParser(logs)); } else { logsToScanCount += scanActiveLogs(stat.getPath()); } } return logsToScanCount; }
ApplicationId appId = parseApplicationId(dirpath.getName()); if (appId != null) { // Application log dir if (shouldCleanAppLogDir(dirpath, now, fs, retainMillis)) {