public virtual ICollection <Path> DoContainerLogAggregation(AggregatedLogFormat.LogWriter writer, bool appFinished) { AppLogAggregatorImpl.Log.Info("Uploading logs for container " + this.containerId + ". Current good log dirs are " + StringUtils.Join(",", this._enclosing.dirsHandler .GetLogDirsForRead())); AggregatedLogFormat.LogKey logKey = new AggregatedLogFormat.LogKey(this.containerId ); AggregatedLogFormat.LogValue logValue = new AggregatedLogFormat.LogValue(this._enclosing .dirsHandler.GetLogDirsForRead(), this.containerId, this._enclosing.userUgi.GetShortUserName (), this._enclosing.logAggregationContext, this.uploadedFileMeta, appFinished); try { writer.Append(logKey, logValue); } catch (Exception e) { AppLogAggregatorImpl.Log.Error("Couldn't upload logs for " + this.containerId + ". Skipping this container." , e); return(new HashSet <Path>()); } Sharpen.Collections.AddAll(this.uploadedFileMeta, logValue.GetCurrentUpLoadedFileMeta ()); // if any of the previous uploaded logs have been deleted, // we need to remove them from alreadyUploadedLogs IEnumerable <string> mask = Iterables.Filter(this.uploadedFileMeta, new _Predicate_581 (logValue)); this.uploadedFileMeta = Sets.NewHashSet(mask); return(logValue.GetCurrentUpLoadedFilesPath()); }
public _Predicate_581(AggregatedLogFormat.LogValue logValue) { this.logValue = logValue; }