383 lines
14 KiB
Text
383 lines
14 KiB
Text
#import koji
|
|
#from kojiweb import util
|
|
#import urllib
|
|
#import cgi
|
|
|
|
#def printValue($key, $value, $sep=', ')
|
|
#if $key in ('brootid', 'buildroot_id')
|
|
<a href="buildrootinfo?buildrootID=$value">$value</a>
|
|
#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
|
|
$value
|
|
#end if
|
|
#end def
|
|
|
|
#def printMap($vals, $prefix='')
|
|
#for $key, $value in $vals.items()
|
|
#if $key != '__starstar'
|
|
$prefix$key = $printValue($key, $value)<br/>
|
|
#end if
|
|
#end for
|
|
#end def
|
|
|
|
#def printOpts($opts)
|
|
#if $opts
|
|
<strong>Options:</strong><br/>
|
|
$printMap($opts, ' ')
|
|
#end if
|
|
#end def
|
|
|
|
#def printChildren($taskID, $childMap)
|
|
#set $iter = 0
|
|
#set $children = $childMap[$str($taskID)]
|
|
#if $children
|
|
<ul>
|
|
#for $child in $children
|
|
#set $iter += 1
|
|
#if $iter < $len($children)
|
|
<li class="sibling">
|
|
#else
|
|
<li>
|
|
#end if
|
|
#set $childState = $util.taskState($child.state)
|
|
<span class="treeBranch">
|
|
<span class="treeLabel">
|
|
<a href="taskinfo?taskID=$child.id" class="task$childState" title="$childState">$koji.taskLabel($child)</a>
|
|
</span>
|
|
</span>
|
|
$printChildren($child.id, $childMap)
|
|
</li>
|
|
#end for
|
|
</ul>
|
|
#end if
|
|
#end def
|
|
|
|
#include "includes/header.chtml"
|
|
|
|
<h4>Information for task <a href="taskinfo?taskID=$task.id">$koji.taskLabel($task)</a></h4>
|
|
|
|
<table>
|
|
<tr>
|
|
<th>ID</th><td>$task.id</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Method</th><td>$task.method</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Parameters</th>
|
|
<td>
|
|
#if $task.method == 'buildSRPMFromSCM'
|
|
<strong>SCM URL:</strong> $params[0]<br/>
|
|
#if $len($params) > 1
|
|
<strong>Build Tag:</strong>: <a href="taginfo?tagID=$buildTag.name">$buildTag.name</a><br/>
|
|
#end if
|
|
#if $len($params) > 2
|
|
$printOpts($params[2])
|
|
#end if
|
|
#elif $task.method == 'buildSRPMFromCVS'
|
|
<strong>CVS URL:</strong> $params[0]
|
|
#elif $task.method == 'buildArch'
|
|
<strong>SRPM:</strong> $params[0]<br/>
|
|
<strong>Build Tag:</strong> <a href="taginfo?tagID=$buildTag.name">$buildTag.name</a><br/>
|
|
<strong>Arch:</strong> $params[2]<br/>
|
|
<strong>Keep SRPM?</strong> #if $params[3] then 'yes' else 'no'#<br/>
|
|
#if $len($params) > 4
|
|
$printOpts($params[4])
|
|
#end if
|
|
#elif $task.method == 'tagBuild'
|
|
<strong>Destination Tag:</strong> <a href="taginfo?tagID=$destTag.id">$destTag.name</a><br/>
|
|
<strong>Build:</strong> <a href="buildinfo?buildID=$build.id">$koji.buildLabel($build)</a>
|
|
#elif $task.method == 'buildNotification'
|
|
#set $build = $params[1]
|
|
#set $buildTarget = $params[2]
|
|
<strong>Recipients:</strong> $printValue('', $params[0])<br/>
|
|
<strong>Build:</strong> <a href="buildinfo?buildID=$build.id">$koji.buildLabel($build)</a><br/>
|
|
#if $buildTarget
|
|
<strong>Build Target:</strong> <a href="buildtargetinfo?targetID=$buildTarget.id">$buildTarget.name</a><br/>
|
|
#else
|
|
<strong>Build Target:</strong> (no build target)<br/>
|
|
#end if
|
|
<strong>Web URL:</strong> <a href="$params[3]">$params[3]</a>
|
|
#elif $task.method == 'tagNotification'
|
|
<strong>Recipients:</strong> $printValue('', $params[0])<br/>
|
|
<strong>Successful?:</strong> #if $params[1] then 'yes' else 'no'#<br/>
|
|
#if $destTag
|
|
<strong>Tagged Into:</strong> <a href="taginfo?tagID=$destTag.id">$destTag.name</a><br/>
|
|
#end if
|
|
#if $srcTag
|
|
<strong>#if $destTag then 'Moved From:' else 'Untagged From:'#</strong> <a href="taginfo?tagID=$srcTag.id">$srcTag.name</a><br/>
|
|
#end if
|
|
<strong>Build:</strong> <a href="buildinfo?buildID=$build.id">$koji.buildLabel($build)</a><br/>
|
|
<strong>#if $destTag then 'Tagged By:' else 'Untagged By:'#</strong> <a href="userinfo?userID=$user.id">$user.name</a><br/>
|
|
<strong>Ignore Success?:</strong> #if $params[6] then 'yes' else 'no'#<br/>
|
|
#if $params[7]
|
|
<strong>Failure Message:</strong> $params[7]
|
|
#end if
|
|
#elif $task.method == 'build'
|
|
<strong>Source:</strong> $params[0]<br/>
|
|
<strong>Build Target:</strong> <a href="buildtargetinfo?name=$params[1]">$params[1]</a><br/>
|
|
$printOpts($params[2])
|
|
#elif $task.method == 'maven'
|
|
<strong>SCM URL:</strong> $params[0]<br/>
|
|
<strong>Build Target:</strong> <a href="buildtargetinfo?name=$params[1]">$params[1]</a><br/>
|
|
$printOpts($params[2])
|
|
#elif $task.method == 'buildMaven'
|
|
<strong>SCM URL:</strong> $params[0]<br/>
|
|
<strong>Build Tag:</strong> <a href="taginfo?tagID=$buildTag.id">$buildTag.name</a><br/>
|
|
#if $len($params) > 2
|
|
$printOpts($params[2])
|
|
#end if
|
|
#elif $task.method == 'wrapperRPM'
|
|
<strong>Spec File URL:</strong> $params[0]<br/>
|
|
#if 'locked' in $buildTarget
|
|
#set $buildTag = $buildTarget
|
|
<strong>Build Tag:</strong> <a href="taginfo?tagID=$buildTag.id">$buildTag.name</a><br/>
|
|
#else
|
|
<strong>Build Target:</strong> <a href="buildtargetinfo?targetID=$buildTarget.id">$buildTarget.name</a><br/>
|
|
#end if
|
|
#if $params[2]
|
|
<strong>Build:</strong> <a href="buildinfo?buildID=$params[2].id">$koji.buildLabel($params[2])</a><br/>
|
|
#end if
|
|
#if $params[3]
|
|
<strong>Task:</strong> <a href="taskinfo?taskID=$wrapTask.id">$koji.taskLabel($wrapTask)</a><br/>
|
|
#end if
|
|
#if $len($params) > 4
|
|
$printOpts($params[4])
|
|
#end if
|
|
#elif $task.method == 'livecd' or $task.method == 'appliance'
|
|
<strong>Arch:</strong> $params[2]<br/>
|
|
<strong>Build Target:</strong> <a href="buildtargetinfo?name=$params[3]">$params[3]</a><br/>
|
|
<strong>Kickstart File:</strong> $params[4]<br/>
|
|
$printOpts($params[5])
|
|
#elif $task.method == 'createLiveCD' or $task.method == 'createAppliance'
|
|
<strong>Arch:</strong> $params[3]<br/>
|
|
<strong>Kickstart File:</strong> $params[7]<br/>
|
|
$printOpts($params[8])
|
|
#elif $task.method == 'winbuild'
|
|
<strong>VM:</strong> $params[0]<br/>
|
|
<strong>SCM URL:</strong> $params[1]<br/>
|
|
<strong>Build Target:</strong> <a href="buildtargetinfo?name=$params[2]">$params[2]</a><br/>
|
|
#if $len($params) > 3
|
|
$printOpts($params[3])
|
|
#end if
|
|
#elif $task.method == 'vmExec'
|
|
<strong>VM:</strong> $params[0]<br/>
|
|
<strong>Exec Params:</strong><br/>
|
|
#for $info in $params[1]
|
|
#if $isinstance($info, dict)
|
|
$printMap($info, ' ')
|
|
#else
|
|
$info<br/>
|
|
#end if
|
|
#end for
|
|
#if $len($params) > 2
|
|
$printOpts($params[2])
|
|
#end if
|
|
#elif $task.method == 'newRepo'
|
|
<strong>Tag:</strong> <a href="taginfo?tagID=$tag.id">$tag.name</a><br/>
|
|
#if $len($params) > 1
|
|
$printOpts($params[1])
|
|
#end if
|
|
#elif $task.method == 'prepRepo'
|
|
<strong>Tag:</strong> <a href="taginfo?tagID=$params[0].id">$params[0].name</a>
|
|
#elif $task.method == 'createrepo'
|
|
<strong>Repo ID:</strong> $params[0]<br/>
|
|
<strong>Arch:</strong> $params[1]<br/>
|
|
#set $oldrepo = $params[2]
|
|
#if $oldrepo
|
|
<strong>Old Repo ID:</strong> $oldrepo.id<br/>
|
|
<strong>Old Repo Creation:</strong> $koji.formatTimeLong($oldrepo.creation_time)<br/>
|
|
#end if
|
|
#if $len($params) > 3
|
|
<strong>External Repos:</strong> $printValue(None, [ext['external_repo_name'] for ext in $params[3]])<br/>
|
|
#end if
|
|
#elif $task.method == 'dependantTask'
|
|
<strong>Dependant Tasks:</strong><br/>
|
|
#for $dep in $deps
|
|
<a href="taskinfo?taskID=$dep.id" class="task$util.taskState($dep.state)">$koji.taskLabel($dep)</a><br/>
|
|
#end for
|
|
<strong>Subtasks:</strong><br/>
|
|
#for $subtask in $params[1]
|
|
<strong>Method:</strong> $subtask[0]<br/>
|
|
<strong>Parameters:</strong> #echo ', '.join([$str($subparam) for $subparam in $subtask[1]])#<br/>
|
|
#if $len($subtask) > 2 and $subtask[2]
|
|
<strong>Options:</strong><br/>
|
|
$printMap($subtask[2], ' ')
|
|
#end if
|
|
<br/>
|
|
#end for
|
|
#elif $task.method == 'chainbuild'
|
|
<strong>Build Groups:</strong><br/>
|
|
#set $groupNum = 0
|
|
#for $urls in $params[0]
|
|
#set $groupNum += 1
|
|
<strong>$groupNum</strong>: #echo ', '.join($urls)#<br/>
|
|
#end for
|
|
<strong>Build Target:</strong> <a href="buildtargetinfo?name=$params[1]">$params[1]</a><br/>
|
|
$printOpts($params[2])
|
|
#elif $task.method == 'waitrepo'
|
|
<strong>Build Target:</strong> $params[0]<br/>
|
|
#if $params[1]
|
|
<strong>Newer Than:</strong> $params[1]<br/>
|
|
#end if
|
|
#if $params[2]
|
|
<strong>NVRs:</strong> $printValue('', $params[2])
|
|
#end if
|
|
#elif $task.method == 'restart'
|
|
<strong>Host:</strong> <a href="hostinfo?hostID=$params[0].id">$params[0].name</a><br/>
|
|
#elif $task.method == 'restartVerify'
|
|
<strong>Host:</strong> <a href="hostinfo?hostID=$params[1].id">$params[1].name</a><br/>
|
|
<strong>Restart Task:</strong>
|
|
<a href="taskinfo?taskID=$rtask.id" class="task$util.taskState($rtask.state)">$koji.taskLabel($rtask)</a><br/>
|
|
#else
|
|
$params
|
|
#end if
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
#set $state = $util.taskState($task.state)
|
|
<th>State</th>
|
|
<td class="task$state">$state
|
|
#if $currentUser and ('admin' in $perms or $task.owner == $currentUser.id)
|
|
#if $task.state in ($koji.TASK_STATES.FREE, $koji.TASK_STATES.OPEN, $koji.TASK_STATES.ASSIGNED)
|
|
<span class="adminLink">(<a href="canceltask?taskID=$task.id$util.authToken($self)">cancel</a>)</span>
|
|
#elif $task.state in ($koji.TASK_STATES.CANCELED, $koji.TASK_STATES.FAILED) and (not $parent)
|
|
<span class="adminLink">(<a href="resubmittask?taskID=$task.id$util.authToken($self)">resubmit</a>)</span>
|
|
#end if
|
|
#end if
|
|
</td>
|
|
</tr>
|
|
#if $taskBuild
|
|
<tr>
|
|
<th>Build</th><td><a href="buildinfo?buildID=$taskBuild.build_id">$koji.buildLabel($taskBuild)</a></td>
|
|
</tr>
|
|
#end if
|
|
<tr>
|
|
<th>Created</th><td>$util.formatTimeLong($task.create_time)</td>
|
|
</tr>
|
|
#if $task.start_time
|
|
<tr>
|
|
<th>Started</th><td>$util.formatTimeLong($task.start_time)</td>
|
|
#end if
|
|
#if $task.state == $koji.TASK_STATES.OPEN
|
|
#if $estCompletion
|
|
<tr>
|
|
<th>Est. Completion</th><td>$util.formatTimeLong($estCompletion)</td>
|
|
</tr>
|
|
#end if
|
|
#elif $task.completion_time
|
|
<tr>
|
|
<th>Completed</th><td>$util.formatTimeLong($task.completion_time)</td>
|
|
</tr>
|
|
#end if
|
|
<tr>
|
|
<th>Owner</th>
|
|
<td>
|
|
#if $owner
|
|
#if $owner.usertype == $koji.USERTYPES['HOST']
|
|
<a href="hostinfo?userID=$owner.id">$owner.name</a>
|
|
#else
|
|
<a href="userinfo?userID=$owner.id">$owner.name</a>
|
|
#end if
|
|
#end if
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Channel</th>
|
|
<td>
|
|
#if $task.channel_id
|
|
<a href="channelinfo?channelID=$task.channel_id">$channelName</a>
|
|
#end if
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Host</th>
|
|
<td>
|
|
#if $task.host_id
|
|
<a href="hostinfo?hostID=$task.host_id">$hostName</a>
|
|
#end if
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Arch</th><td>$task.arch</td>
|
|
</tr>
|
|
#if $buildroots
|
|
<tr>
|
|
<th>Buildroot#if $len($buildroots) > 1 then 's' else ''#</th>
|
|
<td>
|
|
#for $buildroot in $buildroots
|
|
<a href="buildrootinfo?buildrootID=$buildroot.id">#if $task.method == 'vmExec' then '' else '/var/lib/mock/'#$buildroot.tag_name-$buildroot.id-$buildroot.repo_id</a><br/>
|
|
#end for
|
|
</td>
|
|
</tr>
|
|
#end if
|
|
<tr>
|
|
<th>Parent</th>
|
|
<td>
|
|
#if $parent
|
|
<a href="taskinfo?taskID=$parent.id" class="task$util.taskState($parent.state)">$koji.taskLabel($parent)</a>
|
|
#end if
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Descendants</th>
|
|
<td class="tree">
|
|
#if $len($descendents[$str($task.id)]) > 0
|
|
<span class="root">$task.method</span>
|
|
#end if
|
|
$printChildren($task.id, $descendents)
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Waiting?</th><td>#if $task.waiting then 'yes' else 'no'#</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Awaited?</th><td>#if $task.awaited then 'yes' else 'no'#</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Priority</th><td>$task.priority</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Weight</th><td>#echo '%.2f' % $task.weight#</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Result</th>
|
|
<td>
|
|
#if $excClass
|
|
<pre>
|
|
#if $hasattr($result, 'faultString')
|
|
$cgi.escape($result.faultString.strip())
|
|
#else
|
|
${excClass.__name__}: $cgi.escape($str($result))
|
|
#end if
|
|
</pre>
|
|
#elif $isinstance($result, dict)
|
|
$printMap($result)
|
|
#else
|
|
$printValue('', $result)
|
|
#end if
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Output</th>
|
|
<td>
|
|
#for $filename in $output
|
|
<a href="$pathinfo.task($task.id)/$urllib.quote($filename)">$filename</a>
|
|
#if $filename.endswith('.log')
|
|
(<a href="getfile?taskID=$task.id&name=$urllib.quote($filename)&offset=-4000">tail</a>)
|
|
#end if
|
|
<br/>
|
|
#end for
|
|
#if $task.state not in ($koji.TASK_STATES.CLOSED, $koji.TASK_STATES.CANCELED, $koji.TASK_STATES.FAILED) and \
|
|
$task.method in ('buildSRPMFromSCM', 'buildArch', 'livecd', 'appliance', 'buildMaven', 'wrapperRPM', 'vmExec', 'createrepo')
|
|
<br/>
|
|
<a href="watchlogs?taskID=$task.id">Watch logs</a>
|
|
#end if
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
#include "includes/footer.chtml"
|