import xml.sax.saxutils
import fnmatch
import os
-import urllib
-import cgi
+import urllib.parse
+import html
import pytz
import tempfile
+import subprocess
import util
import log
return dt.isoformat()
def is_blank(e):
- return e.nodeType == Element.TEXT_NODE and string.strip(e.nodeValue) == ""
+ return e.nodeType == Element.TEXT_NODE and e.nodeValue.strip() == ""
class Group:
def __init__(self, e):
self.requester = ""
self.max_jobs = 0
self.requester_email = ""
- self.flags = string.split(attr(e, "flags", ""))
+ self.flags = attr(e, "flags", "").split()
for c in e.childNodes:
if is_blank(c): continue
deps = []
m[b.b_id] = b
for dep in b.depends_on:
- if m.has_key(dep):
+ if dep in m:
# avoid self-deps
if id(m[dep]) != id(b):
deps.append(m[dep])
def dump(self, f):
f.write("group: %d (id=%s pri=%d)\n" % (self.no, self.id, self.priority))
f.write(" from: %s\n" % self.requester)
- f.write(" flags: %s\n" % string.join(self.flags))
+ f.write(" flags: %s\n" % ' '.join(self.flags))
f.write(" time: %s\n" % time.asctime(time.localtime(self.time)))
for b in self.batches:
b.dump(f)
'requester': escape(self.requester),
'priority': self.priority,
'max_jobs': self.max_jobs,
- 'flags': string.join(self.flags)
+ 'flags': ' '.join(self.flags)
})
f.write("<ol>\n")
for b in self.batches:
<requester email='%s'>%s</requester>
<time>%d</time>
<priority>%d</priority>
- <maxjobs>%d</maxjobs>\n""" % (self.id, self.no, string.join(self.flags),
+ <maxjobs>%d</maxjobs>\n""" % (self.id, self.no, ' '.join(self.flags),
escape(self.requester_email), escape(self.requester),
self.time, self.priority, self.max_jobs))
for b in self.batches:
self.skip = []
self.gb_id = ""
self.b_id = attr(e, "id")
- self.depends_on = string.split(attr(e, "depends-on"))
+ self.depends_on = attr(e, "depends-on").split()
self.upgraded = True
self.parse_xml(e)
elif c.nodeName == "command":
self.spec = "COMMAND"
self.command = text(c).strip()
- self.command_flags = string.split(attr(c, "flags", ""))
+ self.command_flags = attr(c, "flags", "").split()
elif c.nodeName == "info":
self.info = text(c)
elif c.nodeName == "kernel":
builders = []
for b in self.builders:
builders.append("%s:%s" % (b, self.builders_status[b]))
- f.write(" builders: %s\n" % string.join(builders))
+ f.write(" builders: %s\n" % ' '.join(builders))
def is_command(self):
return self.command != ""
desc = "SH: <pre>%s</pre> flags: [%s]" % (self.command, ' '.join(self.command_flags))
else:
cmd = "/usr/bin/git ls-remote --heads git://git.tld-linux.org/packages/%s 1>/dev/null 2>&1" % (self.spec[:-5])
- r = call(cmd, shell=True)
+ r = subprocess.call(cmd, shell=True)
if r == 0:
package_url = "http://git.tld-linux.org/?p=packages/%(package)s.git;a=blob;f=%(spec)s;hb=%(branch)s" % {
- 'spec': urllib.quote(self.spec),
- 'branch': urllib.quote(self.branch),
- 'package': urllib.quote(self.spec[:-5]),
+ 'spec': urllib.parse.quote(self.spec),
+ 'branch': urllib.parse.quote(self.branch),
+ 'package': urllib.parse.quote(self.spec[:-5]),
}
else:
package_url = "http://git.pld-linux.org/gitweb.cgi?p=packages/%(package)s.git;f=%(spec)s;h=%(branch)s;a=shortlog" % {
- 'spec': urllib.quote(self.spec),
- 'branch': urllib.quote(self.branch),
- 'package': urllib.quote(self.spec[:-5]),
+ 'spec': urllib.parse.quote(self.spec),
+ 'branch': urllib.parse.quote(self.branch),
+ 'package': urllib.parse.quote(self.spec[:-5]),
}
desc = "%(src_rpm)s (<a href=\"%(package_url)s\">%(spec)s -r %(branch)s</a>%(rpmopts)s)" % {
'src_rpm': self.src_rpm,
bld = lin_ar.split('-')
tree_name = '-'.join(bld[:-1])
tree_arch = '-'.join(bld[-1:])
- link_pre = "<a href=\"http://buildlogs.tld-linux.org/index.php?dist=%s&arch=%s&name=%s&id=%s&action=download\">" \
- % (urllib.quote(tree_name), urllib.quote(tree_arch), urllib.quote(bl_name), urllib.quote(rid))
+ link_pre = "<a href=\"http://buildlogs.tld-linux.org/index.php?dist=%s&arch=%s&name=%s&id=%s&action=download\">" \
+ % (urllib.parse.quote(tree_name), urllib.parse.quote(tree_arch), urllib.parse.quote(bl_name), urllib.parse.quote(rid))
link_post = "</a>"
def ftime(s):
'color' : c,
'builder' : b,
'status' : s,
- 'tooltip' : cgi.escape(tooltip, True),
+ 'tooltip' : html.escape(tooltip, True),
}
+ link_post)
- f.write("%s]</small></li>\n" % string.join(builders))
+ f.write("%s]</small></li>\n" % ' '.join(builders))
def rpmbuild_opts(self):
"""
ignores = []
# add php version based ignores
- if self.defines.has_key('php_suffix'):
+ if 'php_suffix' in self.defines:
# current version if -D php_suffix is present
php_version = php_name_to_ver(self.defines['php_suffix'])
else:
<spec>%s</spec>
<branch>%s</branch>
<info>%s</info>\n""" % (self.b_id,
- string.join(list(map(lambda (b): b.b_id, self.depends_on))),
+ ' '.join(list(map(lambda b: b.b_id, self.depends_on))),
escape(self.src_rpm),
escape(' '.join(self.command_flags)), escape(self.command),
escape(self.spec), escape(self.branch), escape(self.info)))
if self.defines:
f.write(" %s\n" % self.defines_xml())
for b in self.builders:
- if self.builders_status_buildtime.has_key(b):
+ if b in self.builders_status_buildtime:
t = self.builders_status_buildtime[b]
else:
t = "0"
for r in q.requests:
if r.kind == "group":
for b in r.batches:
- if self.batches.has_key(b.b_id):
+ if b.b_id in self.batches:
b.builders_status[self.builder] = self.batches[b.b_id]
b.builders_status_time[self.builder] = time.time()
b.builders_status_buildtime[self.builder] = "0" #self.batches_buildtime[b.b_id]