X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/dcf97f13fa730ba7af3fee9b6d7044592a30a2be..57647945b08a74bab02fed6adf947eb9adb8321f:/apps/workbench/app/helpers/pipeline_instances_helper.rb
diff --git a/apps/workbench/app/helpers/pipeline_instances_helper.rb b/apps/workbench/app/helpers/pipeline_instances_helper.rb
index ba05f9e88c..2142375226 100644
--- a/apps/workbench/app/helpers/pipeline_instances_helper.rb
+++ b/apps/workbench/app/helpers/pipeline_instances_helper.rb
@@ -1,3 +1,7 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
module PipelineInstancesHelper
def pipeline_jobs object=nil
@@ -63,15 +67,14 @@ module PipelineInstancesHelper
timestamps << [started_at, finished_at]
end
- # Accept a list of objects with [:started_at] and [:finshed_at] keys and
+ # Accept a list of objects with [:started_at] and [:finished_at] keys and
# merge overlapping ranges to compute the time spent running after periods of
# overlapping execution are factored out.
def determine_wallclock_runtime jobs
timestamps = []
jobs.each do |j|
- insert_at = 0
- started_at = j[:started_at]
- finished_at = (if j[:finished_at] then j[:finished_at] else Time.now end)
+ started_at = (j.started_at if j.respond_to?(:started_at)) || (j[:started_at] if j.is_a?(Hash))
+ finished_at = (j.finished_at if j.respond_to?(:finished_at)) || (j[:finished_at] if j.is_a?(Hash)) || Time.now
if started_at
timestamps = merge_range timestamps, started_at, finished_at
end
@@ -289,7 +292,7 @@ module PipelineInstancesHelper
else
s = ""
if days > 0
- s += "#{days}d "
+ s += "#{days}d"
end
if (hours > 0)
@@ -298,7 +301,7 @@ module PipelineInstancesHelper
s += "#{minutes}m"
- if not round_to_min
+ if not round_to_min or (days == 0 and hours == 0 and minutes == 0)
s += "#{seconds}s"
end
end