From 8f82c3b280e726fd749c0f7ee2a2ea344d4e7af4 Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Apr 29 2019 06:53:48 +0000 Subject: [PATCH 1/3] display task durations in webui Fixes: https://pagure.io/koji/issue/1382 --- diff --git a/www/kojiweb/taskinfo.chtml b/www/kojiweb/taskinfo.chtml index 69c2bbd..acec1bf 100644 --- a/www/kojiweb/taskinfo.chtml +++ b/www/kojiweb/taskinfo.chtml @@ -2,15 +2,16 @@ #from kojiweb import util #from six.moves.urllib.parse import quote #import cgi +#from datetime import datetime #def printValue($key, $value, $sep=', ') #if $key in ('brootid', 'buildroot_id') $value - #elif $isinstance($value, list) -$sep.join([$str($val) for $val in $value]) + #elif $isinstance($value, list) +$sep.join([$str($val) for $val in $value]) #elif $isinstance($value, dict) $sep.join(['%s=%s' % (($n == '' and "''" or $n), $v) for $n, $v in $value.items()]) - #else + #else $value #end if #end def @@ -26,7 +27,7 @@ $value #elif $key != '__starstar' $prefix$key = $printValue($key, $value)
#end if - #end for + #end for #end def #def printOpts($opts) @@ -130,26 +131,26 @@ $value SCM URL: $params[0]
Build Target: $params[1]
$printOpts($params[2]) - #elif $task.method == 'buildMaven' - SCM URL: $params[0]
- Build Tag: $buildTag.name
- #if $len($params) > 2 + #elif $task.method == 'buildMaven' + SCM URL: $params[0]
+ Build Tag: $buildTag.name
+ #if $len($params) > 2 $printOpts($params[2]) #end if - #elif $task.method == 'wrapperRPM' - Spec File URL: $params[0]
- #if 'locked' in $buildTarget - #set $buildTag = $buildTarget - Build Tag: $buildTag.name
- #else - Build Target: $buildTarget.name
- #end if - #if $params[2] - Build: $koji.buildLabel($params[2])
- #end if - #if $params[3] - Task: $koji.taskLabel($wrapTask)
- #end if + #elif $task.method == 'wrapperRPM' + Spec File URL: $params[0]
+ #if 'locked' in $buildTarget + #set $buildTag = $buildTarget + Build Tag: $buildTag.name
+ #else + Build Target: $buildTarget.name
+ #end if + #if $params[2] + Build: $koji.buildLabel($params[2])
+ #end if + #if $params[3] + Task: $koji.taskLabel($wrapTask)
+ #end if #if $len($params) > 4 $printOpts($params[4]) #end if @@ -320,16 +321,32 @@ $value Started$util.formatTimeLong($task.start_time) #end if + #set $end_ts = None #if $task.state == $koji.TASK_STATES.OPEN #if $estCompletion - Est. Completion$util.formatTimeLong($estCompletion) + Est. Completion + $util.formatTimeLong($estCompletion) #end if #elif $task.completion_time Completed$util.formatTimeLong($task.completion_time) + #set $end_ts = $task.completion_ts + #end if + #if not $end_ts + #set $end_ts = datetime.now().timestamp() + #end if + + Total time + $util.formatTimestampDifference($task.create_ts, $end_ts) + + #if $task.start_time + + Task time + $util.formatTimestampDifference($task.start_ts, $end_ts) + #end if Owner diff --git a/www/lib/kojiweb/util.py b/www/lib/kojiweb/util.py index f96b131..abca32d 100644 --- a/www/lib/kojiweb/util.py +++ b/www/lib/kojiweb/util.py @@ -30,6 +30,7 @@ import os import six import ssl import stat +import time from six.moves import range #a bunch of exception classes that explainError needs @@ -415,6 +416,15 @@ formatTime = koji.formatTime formatTimeRSS = koji.formatTimeLong formatTimeLong = koji.formatTimeLong +def formatTimestampDifference(start_ts, end_ts): + diff = end_ts - start_ts + seconds = diff % 60 + diff = diff // 60 + minutes = diff % 60 + diff = diff // 60 + hours = diff + return "%d:%02d:%02d" % (hours, minutes, seconds) + def formatDep(name, version, flags): """Format dependency information into a human-readable format. Copied from From 76aad4395e0be92f6f27b4fef766bddb6c28a60b Mon Sep 17 00:00:00 2001 From: Mike McLean Date: May 06 2019 12:28:11 +0000 Subject: [PATCH 2/3] use time.time() for current timestamp --- diff --git a/www/kojiweb/taskinfo.chtml b/www/kojiweb/taskinfo.chtml index acec1bf..adc0c43 100644 --- a/www/kojiweb/taskinfo.chtml +++ b/www/kojiweb/taskinfo.chtml @@ -3,6 +3,7 @@ #from six.moves.urllib.parse import quote #import cgi #from datetime import datetime +#import time #def printValue($key, $value, $sep=', ') #if $key in ('brootid', 'buildroot_id') @@ -336,7 +337,7 @@ $value #set $end_ts = $task.completion_ts #end if #if not $end_ts - #set $end_ts = datetime.now().timestamp() + #set $end_ts = time.time() #end if Total time From e7e228022259f7d44c5c085c8fa3ac076a9b9d3b Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: May 06 2019 12:29:32 +0000 Subject: [PATCH 3/3] remove unneeded import --- diff --git a/www/kojiweb/taskinfo.chtml b/www/kojiweb/taskinfo.chtml index adc0c43..2363742 100644 --- a/www/kojiweb/taskinfo.chtml +++ b/www/kojiweb/taskinfo.chtml @@ -2,7 +2,6 @@ #from kojiweb import util #from six.moves.urllib.parse import quote #import cgi -#from datetime import datetime #import time #def printValue($key, $value, $sep=', ')