diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Report/project.report.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Report/project.report.js index 32c584fa585cdd4d4cae7b311b8caeab844bc1e6..0fc228bcdbad68961bbb299593a7f5f40879a1cf 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/routes/Report/project.report.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Report/project.report.js @@ -71,6 +71,10 @@ class ProjectReport extends Component { const projectLTAStorage = projectResources["LTA Storage"]?projectResources["LTA Storage"].value:0; const timeFactor = UnitConverter.resourceUnitMap["time"].conversionFactor; const dataSizeFactor = UnitConverter.resourceUnitMap["bytes"].conversionFactor; + const toDisplayedPercent = function(value, total) {return ((value || 0) / total * 100).toFixed(2);} + const toDisplayedValue = function (value, factor) {return ((value || 0) / factor).toFixed(2);} + const toDisplayedSize = function(value) {return toDisplayedValue(value, dataSizeFactor);} + const toDisplayedTime = function(value) {return toDisplayedValue(value, timeFactor);} let totalSUBObsTime = 0, totalProcessTime = 0, totalLTAStorage = 0; for (const subStatus of _.keys(projectReport["SUBs"])) { let subs = projectReport["SUBs"][subStatus]; @@ -83,61 +87,61 @@ class ProjectReport extends Component { suStatsList = _.orderBy(suStatsList, ['stop']); for (const reportSub of suStatsList) { if (reportSub.observed_duration) { - reportSub.observingTime = (reportSub.observed_duration/timeFactor).toFixed(2); + reportSub.observingTime = toDisplayedTime(reportSub.observed_duration); if (reportSub.acceptance_status != 'failed'){ totalSUBObsTime += reportSub.observed_duration; } - reportSub.observingTimeInc = (totalSUBObsTime / timeFactor).toFixed(2); - reportSub.observingTimeLeft = ((projectObservingTime - totalSUBObsTime)/timeFactor).toFixed(2); - reportSub.observingTimeIncPercent = (totalSUBObsTime/projectObservingTime*100).toFixed(2); + reportSub.observingTimeInc = toDisplayedTime(totalSUBObsTime); + reportSub.observingTimeLeft = toDisplayedTime(projectObservingTime - totalSUBObsTime); + reportSub.observingTimeIncPercent = toDisplayedPercent(totalSUBObsTime, projectObservingTime); } if (reportSub.CPU_time_used_duration) { - reportSub.processTime = (reportSub.CPU_time_used_duration/timeFactor).toFixed(2); + reportSub.processTime = toDisplayedTime(reportSub.CPU_time_used_duration); if (reportSub.acceptance_status != 'failed'){ totalProcessTime += reportSub.CPU_time_used_duration; } - reportSub.processTimeInc = (totalProcessTime / timeFactor).toFixed(2); - reportSub.processTimeLeft = ((projectProcessTime - totalProcessTime)/timeFactor).toFixed(2); - reportSub.processTimeIncPercent = (totalProcessTime / projectProcessTime *100).toFixed(2); + reportSub.processTimeInc = toDisplayedTime(totalProcessTime); + reportSub.processTimeLeft = toDisplayedTime(projectProcessTime - totalProcessTime); + reportSub.processTimeIncPercent = toDisplayedPercent(totalProcessTime, projectProcessTime); } - reportSub.ingestDataSize = ((reportSub["ingested_data_size"] || 0)/dataSizeFactor).toFixed(2); + reportSub.ingestDataSize = toDisplayedSize(reportSub["ingested_data_size"]); if (reportSub.acceptance_status != 'failed'){ totalLTAStorage += reportSub["ingested_data_size"]; } - reportSub.ingestDataIncPercent = (totalLTAStorage / projectLTAStorage * 100).toFixed(2); + reportSub.ingestDataIncPercent = toDisplayedPercent(totalLTAStorage, projectLTAStorage); reportSub.ingestDate = reportSub.ingested_date?moment.utc(reportSub.ingested_date).format(UIConstants.CALENDAR_DEFAULTDATE_FORMAT):""; reportSub.execDate = moment.utc(reportSub.start).format(UIConstants.CALENDAR_DEFAULTDATE_FORMAT); reportSub.observationSASId = reportSub["SAS ID"]["observation control"].join(); reportSub.pipelinseSASId = (reportSub["SAS ID"]["preprocessing pipeline"].concat(reportSub["SAS ID"]["pulsar pipeline"])).join(", "); } - let observTimeUtilization = {type: 'Observing', value: (projectReport.durations.total_observed/timeFactor).toFixed(2), - percent: (totalSUBObsTime/projectObservingTime*100).toFixed(2), - succeeded: (projectReport.durations.total_observed_succeeded/projectObservingTime*100).toFixed(2), - succeededValue:((projectReport.durations.total_observed_succeeded || 0)/timeFactor).toFixed(2), - acceptancePending: (projectReport.durations.total_observed_acceptance_pending/projectObservingTime*100).toFixed(2), - acceptancePendingValue: ((projectReport.durations.total_observed_acceptance_pending || 0)/timeFactor).toFixed(2), - failed: (projectReport.durations.total_observed_failed/projectObservingTime*100).toFixed(2), - failedValue: ((projectReport.durations.total_observed_failed || 0)/timeFactor).toFixed(2), + let observTimeUtilization = {type: 'Observing', value: toDisplayedTime(projectReport.durations.total_observed), + percent: toDisplayedPercent(totalSUBObsTime, projectObservingTime), + succeeded: toDisplayedPercent(projectReport.durations.total_observed_succeeded, projectObservingTime), + succeededValue: toDisplayedTime(projectReport.durations.total_observed_succeeded), + acceptancePending: toDisplayedPercent(projectReport.durations.total_observed_acceptance_pending, projectObservingTime), + acceptancePendingValue: toDisplayedTime(projectReport.durations.total_observed_acceptance_pending), + failed: toDisplayedPercent(projectReport.durations.total_observed_failed, projectObservingTime), + failedValue: toDisplayedTime(projectReport.durations.total_observed_failed), unit: 'hrs'}; resourceUtilization.push(observTimeUtilization); - let processTimeUtilization = {type: 'CEP Processing', value: ((projectReport.processing_resources.CPU_time_used||0)/timeFactor).toFixed(2), - percent: (totalProcessTime/projectProcessTime*100).toFixed(2), - succeeded: ((projectReport.processing_resources.CPU_time_used_succeeded||0)/projectProcessTime*100).toFixed(2), - succeededValue: ((projectReport.processing_resources.CPU_time_used_succeeded||0)/timeFactor).toFixed(2), - acceptancePending: ((projectReport.processing_resources.CPU_time_used_acceptance_pending||0)/projectProcessTime*100).toFixed(2), - acceptancePendingValue: ((projectReport.processing_resources.CPU_time_used_acceptance_pending||0)/timeFactor).toFixed(2), - failed: ((projectReport.processing_resources.CPU_time_used_failed||0)/projectProcessTime*100).toFixed(2), - failedValue: ((projectReport.processing_resources.CPU_time_used_failed||0)/timeFactor).toFixed(2), + let processTimeUtilization = {type: 'CEP Processing', value: toDisplayedTime(projectReport.processing_resources.CPU_time_used), + percent: toDisplayedPercent(totalProcessTime, projectProcessTime), + succeeded: toDisplayedPercent(projectReport.processing_resources.CPU_time_used_succeeded, projectProcessTime), + succeededValue: toDisplayedTime(projectReport.processing_resources.CPU_time_used_succeeded), + acceptancePending: toDisplayedPercent(projectReport.processing_resources.CPU_time_used_acceptance_pending, projectProcessTime), + acceptancePendingValue: toDisplayedTime(projectReport.processing_resources.CPU_time_used_acceptance_pending), + failed: toDisplayedPercent(projectReport.processing_resources.CPU_time_used_failed, projectProcessTime), + failedValue: toDisplayedTime(projectReport.processing_resources.CPU_time_used_failed), unit: 'hrs'}; resourceUtilization.push(processTimeUtilization); - let ltaStorageUtilization = {type: 'LTA Storage', value: ((projectReport.LTA_dataproducts.size||0)/dataSizeFactor).toFixed(2), - percent: (totalLTAStorage/projectLTAStorage*100).toFixed(2), - succeeded: ((projectReport.LTA_dataproducts.size_succeeded||0)/projectLTAStorage*100).toFixed(2), - succeededValue: ((projectReport.LTA_dataproducts.size_succeeded||0)/dataSizeFactor).toFixed(2), - acceptancePending: ((projectReport.LTA_dataproducts.size_acceptance_pending||0)/projectLTAStorage*100).toFixed(2), - acceptancePendingValue: ((projectReport.LTA_dataproducts.size_acceptance_pending||0)/dataSizeFactor).toFixed(2), - failed: ((projectReport.LTA_dataproducts.size_failed||0)/projectLTAStorage*100).toFixed(2), - failedValue: ((projectReport.LTA_dataproducts.size_failed||0)/dataSizeFactor).toFixed(2), + let ltaStorageUtilization = {type: 'LTA Storage', value: toDisplayedSize(projectReport.LTA_dataproducts.size), + percent: toDisplayedPercent(totalLTAStorage, projectLTAStorage), + succeeded: toDisplayedPercent(projectReport.LTA_dataproducts.size_succeeded, projectLTAStorage), + succeededValue: toDisplayedSize(projectReport.LTA_dataproducts.size_succeeded), + acceptancePending: toDisplayedPercent(projectReport.LTA_dataproducts.size_acceptance_pending, projectLTAStorage), + acceptancePendingValue: toDisplayedSize(projectReport.LTA_dataproducts.size_acceptance_pending), + failed: toDisplayedPercent(projectReport.LTA_dataproducts.size_failed, projectLTAStorage), + failedValue: toDisplayedSize(projectReport.LTA_dataproducts.size_failed), unit: 'TB'}; resourceUtilization.push (ltaStorageUtilization); }