X-Git-Url: https://git.tld-linux.org/?p=tld-builder.git;a=blobdiff_plain;f=TLD_Builder%2Frequest_handler.py;fp=PLD_Builder%2Frequest_handler.py;h=033cf39d8760b4c605db7a478a04be9beaedbd4e;hp=2c38e83069b7863046a11ba95908617ba93f1994;hb=b999f53d4bf5d44586ecf028876e8bc20b5fd2ce;hpb=37463eaa22f48f5fecbb90e69ef67a69e0bf9788 diff --git a/PLD_Builder/request_handler.py b/TLD_Builder/request_handler.py similarity index 86% rename from PLD_Builder/request_handler.py rename to TLD_Builder/request_handler.py index 2c38e83..033cf39 100644 --- a/PLD_Builder/request_handler.py +++ b/TLD_Builder/request_handler.py @@ -16,9 +16,11 @@ import util import wrap import status from acl import acl +from blacklist import blacklist from lock import lock from bqueue import B_Queue from config import config, init_conf +from mailer import Message def check_double_id(id): id_nl = id + "\n" @@ -45,7 +47,8 @@ def handle_group(r, user): else: spec = "None.spec" log.error("%s: %s" % (spec, msg)) - m = user.message_to() + m = Message() + m.set_headers(to = r.requester_email, cc = config.builder_list) m.set_headers(subject = "building %s failed" % spec) m.write_line(msg) m.send() @@ -55,6 +58,15 @@ def handle_group(r, user): lockf.close() return + try: + if (user.change_requester and r.requester): + user = acl.user_by_login(r.requester) + except KeyError: + r.requester += '/' + user.get_login() + else: + r.requester = user.get_login() + r.requester_email = user.mail_to() + for batch in r.batches: if not user.can_do("src", config.builder, batch.branch): @@ -112,10 +124,21 @@ def handle_group(r, user): % (user.get_login(), pkg, bld, batch.branch)) lockf.close() return + if not "test-build" in r.flags and not user.can_do("ready", bld, batch.branch): + fail_mail("user %s is not allowed to send ready builds (ready:%s:%s)" \ + % (user.get_login(), bld, batch.branch)) + lockf.close() + return + + pkg = batch.spec + if pkg.endswith(".spec"): + pkg = pkg[:-5] + if not "test-build" in r.flags and blacklist.package(pkg): + fail_mail("package '%s' is blacklisted, only test-builds allowed" % pkg) + lockf.close() + return r.priority = user.check_priority(r.priority,config.builder) - r.requester = user.get_login() - r.requester_email = user.mail_to() r.time = time.time() log.notice("queued %s from %s" % (r.id, user.get_login())) q = B_Queue(path.queue_file) @@ -190,6 +213,7 @@ def handle_request(req, filename = None): def handle_request_main(req, filename = None): acl.try_reload() + blacklist.try_reload() init_conf("src") status.push("handling email request") ret = handle_request(req, filename = filename)