package com.sequenceiq.periscope.rest.converter; import org.apache.hadoop.yarn.api.records.ApplicationReport; import org.apache.hadoop.yarn.api.records.ApplicationResourceUsageReport; import org.springframework.stereotype.Component; import com.sequenceiq.periscope.rest.json.AppReportJson; @Component public class AppReportConverter extends AbstractConverter<AppReportJson, ApplicationReport> { @Override public AppReportJson convert(ApplicationReport source) { AppReportJson json = new AppReportJson(); json.setAppId(source.getApplicationId().toString()); json.setStart(source.getStartTime()); json.setFinish(source.getFinishTime()); json.setProgress(source.getProgress()); json.setQueue(source.getQueue()); json.setUrl(source.getTrackingUrl()); json.setUser(source.getUser()); json.setState(source.getYarnApplicationState().name()); ApplicationResourceUsageReport usageReport = source.getApplicationResourceUsageReport(); json.setReservedContainers(usageReport.getNumReservedContainers()); json.setUsedContainers(usageReport.getNumUsedContainers()); json.setUsedMemory(usageReport.getUsedResources().getMemory()); json.setUsedVCores(usageReport.getUsedResources().getVirtualCores()); return json; } }