74 limit = int(args[
'limit'])
if 'limit' in args
else 50
75 with TaskManager(self.
globalConfig[
'taskDb'])
as taskman:
78 table = runCount % (taskman.getCount(
'distinct(runnr)',[
"where TASKNAME like '%s%%'" % type]), type)
80 table = runCountLimit % (taskman.getCount(
'distinct(runnr)',[
"where TASKNAME like '%s%%'" % type]), type,limit)
81 table += tableHeader % type
82 for r
in taskman.taskIterDict(
'distinct(DSNAME),RUNNR',[
"where TASKNAME like '%s%%' order by RUNNR desc" % type], limit):
86 stream = dsname.split(
'.')[-1].
split(
'_')[-1]
89 if not runnr:
continue
91 table +=
'<td><a href="http://atlas-runquery.cern.ch/query.py?q=find+r+%s+/+sh+lhc+all+and+r+and+t+and+mag+and+dq+idbs,pix,sct">%s</a></td>' % (runnr,runnr)
92 table +=
'<td>%s</td>' % stream
94 t = taskman.taskIterDict(
'*',[
'where RUNNR =',DbParam(runnr),
'and DSNAME =',DbParam(dsname),
"and TASKNAME like '%s%%' order by UPDATED desc" % type]).next()
95 taskName = t[
'TASKNAME']
96 datatag = taskName.split(
'.')[-1].
split(
'_')[0]
97 if taskName[:11] ==
'DB_BEAMSPOT.':
99 monTaskName =
'MON.%s.%s' % (taskName,datatag)
100 elif taskName[:-1] ==
'REPROHIMAR2011_BEAMSPOT.r2074.v':
102 monTaskName =
'MON.REPROHIMAR2011_BEAMSPOT.r2074'
105 monTaskName =
'MON.%s%%' % (taskName)
107 m = taskman.taskIterDict(
'*',[
'where RUNNR =',DbParam(runnr),
'and DSNAME =',DbParam(dsname),
'and TASKNAME like ',DbParam(monTaskName),
'order by UPDATED desc']).next()
109 monStatus =
'<td class="%s"><a href="../details?d=%s&t=%s">%s</a></td>' % (getStatusClass(stat),t[
'DSNAME'],m[
'TASKNAME'],getKey(TaskManager.StatusCodes,stat))
110 monResults =
"<td>%s</td>" % (blankIfNone(m[
'RESULTLINKS']))
112 monStatus =
'<td></td>'
113 monResults =
'<td></td>'
114 table +=
'<td><a href="../details?d=%s&t=%s">%s</a></td>' % (t[
'DSNAME'],taskName,taskName)
115 table +=
"<td>%s</td>" % (time.ctime(t[
'UPDATED']))
117 table +=
'<td class="%s">%s</td>' % (getStatusClass(stat),getKey(TaskManager.StatusCodes,stat))
118 table +=
"<td>%s</td>" % (blankIfNone(t[
'RESULTLINKS']))
120 cooltags = t[
'COOLTAGS']
123 for tag
in cooltags.split():
124 table +=
'<a href="http://atlas-runquery.cern.ch/query.py?q=find+run+%s+/+show+bs+%s">%s</a> ' % (runnr,tag,tag)
127 except Exception
as e:
128 table +=
"<td>%s</td>" % str(e)
133 monStatus =
'<td></td>'
134 monResults =
'<td></td>'
137 table +=
'<td><a href="../jobs?r=%s">all tasks</a></td>' % runnr
139 table +=
"</tbody></table>\n"