X-Git-Url: https://git.tld-linux.org/?a=blobdiff_plain;f=TLD_Builder%2Frpm_builder.py;h=562d3e4dee2f3991fb15e6a715c456e4244ad547;hb=57588b3651663a4ba4beff3ec1cd9c5a6de290d5;hp=74c7faa776255abed312b0673c72a23dd23585c3;hpb=92949e17161a53bfb4a60099e22b58ad63abce4c;p=tld-builder.git diff --git a/TLD_Builder/rpm_builder.py b/TLD_Builder/rpm_builder.py index 74c7faa..562d3e4 100644 --- a/TLD_Builder/rpm_builder.py +++ b/TLD_Builder/rpm_builder.py @@ -8,13 +8,15 @@ import atexit import time import datetime import string -import urllib -import urllib2 +import urllib.request +import urllib.parse +import urllib.error from config import config, init_conf from bqueue import B_Queue import lock import util +import shutil import loop import path import status @@ -46,12 +48,12 @@ def pick_request(q): def mycmp(r1, r2): if r1.kind != 'group' or r2.kind != 'group': raise Exception("non-group requests") - pri_diff = cmp(r1.priority, r2.priority) + pri_diff = util.cmp(r1.priority, r2.priority) if pri_diff == 0: - return cmp(r1.time, r2.time) + return util.cmp(r1.time, r2.time) else: return pri_diff - q.requests.sort(mycmp) + q.requests.sort(key=util.cmp_to_key(mycmp)) ret = q.requests[0] return ret @@ -62,12 +64,12 @@ def check_skip_build(r, b): while not good: try: headers = { 'Cache-Control': 'no-cache', 'Pragma': 'no-cache' } - req = urllib2.Request(url=src_url, headers=headers) - f = urllib2.urlopen(req) + req = urllib.request.Request(url=src_url, headers=headers) + f = urllib.request.urlopen(req) good = True - except urllib2.HTTPError as error: + except urllib.error.HTTPError as error: return False - except urllib2.URLError as error: + except urllib.error.URLError as error: # see errno.h try: errno = error.errno @@ -85,17 +87,17 @@ def check_skip_build(r, b): return False def fetch_src(r, b): - src_url = config.control_url + "/srpms/" + r.id + "/" + urllib.quote(b.src_rpm) + src_url = config.control_url + "/srpms/" + r.id + "/" + urllib.parse.quote(b.src_rpm) b.log_line("fetching %s" % src_url) start = time.time() good = False while not good: try: headers = { 'Cache-Control': 'no-cache', 'Pragma': 'no-cache' } - req = urllib2.Request(url=src_url, headers=headers) - f = urllib2.urlopen(req) + req = urllib.request.Request(url=src_url, headers=headers) + f = urllib.request.urlopen(req) good = True - except urllib2.HTTPError as error: + except urllib.error.HTTPError as error: # fail in a way where cron job will retry msg = "unable to fetch url %s, http code: %d" % (src_url, error.code) b.log_line(msg) @@ -107,7 +109,7 @@ def fetch_src(r, b): msg = "in queue for more than 6 hours, download failing" b.log_line(msg) return False - except urllib2.URLError as error: + except urllib.error.URLError as error: errno = 0 if isinstance(error.args[0], IOError): errno = error.args[0].errno @@ -129,11 +131,12 @@ def fetch_src(r, b): o = chroot.popen("cat > %s" % b.src_rpm, mode = "w") try: - bytes = util.sendfile(f, o) + shutil.copyfileobj(f, o) except IOError as e: b.log_line("error: unable to write to `%s': %s" % (b.src_rpm, e)) raise + bytes = float(f.headers['content-length']) f.close() o.close() t = time.time() - start @@ -283,7 +286,7 @@ def build_rpm(r, b): b.log_line("copy rpm files to cache_dir: %s" % rpm_cache_dir) chroot.run( "cp -f %s %s && poldek --mo=nodiff --mkidxz -s %s/" % \ - (string.join(b.files), rpm_cache_dir, rpm_cache_dir), + (' '.join(b.files), rpm_cache_dir, rpm_cache_dir), logfile = b.logfile, user = "root" ) else: @@ -338,7 +341,7 @@ def check_load(): do_exit = 0 try: f = open("/proc/loadavg") - if float(string.split(f.readline())[2]) > config.max_load: + if float(f.readline().split()[2]) > config.max_load: do_exit = 1 except: pass