X-Git-Url: https://git.tld-linux.org/?p=TLD.git;a=blobdiff_plain;f=pld-builder.new%2FPLD_Builder%2Fload_balancer.py;fp=pld-builder.new%2FPLD_Builder%2Fload_balancer.py;h=0000000000000000000000000000000000000000;hp=2e182c89f8204f2ca9d3cc08440eaf415bc541d9;hb=3dc53b6865f716904ad4d02e934e04b3d4855c32;hpb=b235722fd546915a60800f2660d76f684d6f1445 diff --git a/pld-builder.new/PLD_Builder/load_balancer.py b/pld-builder.new/PLD_Builder/load_balancer.py deleted file mode 100644 index 2e182c8..0000000 --- a/pld-builder.new/PLD_Builder/load_balancer.py +++ /dev/null @@ -1,73 +0,0 @@ -# vi: encoding=utf-8 ts=8 sts=4 sw=4 et - -import string -import os -import time - -import path -import sys -import log -import status -import lock -import loop - -import rpm_builder - -from config import config, init_conf - -# return list of binary builders in fair-queue order -# it is determined based upon spool/got_lock file, which is also -# updated to be short -def builders_order(): - bs = {} - bl = [] - for b in config.binary_builders: - bs[b] = 0 - bl.append(b) - - lck = lock.lock("got-lock") - f = open(path.got_lock_file, "r+") - line_no = 0 - - for l in f.xreadlines(): - line_no += 1 - b = string.strip(l) - if bs.has_key(b): - bs[b] = line_no - else: - log.alert("found strange lock in got-lock: %s" % b) - - def mycmp(b1, b2): - return cmp(bs[b1], bs[b2]) - - bl.sort(mycmp) - - f.seek(0) - f.truncate(0) - for l in bl: f.write(l + "\n") - f.close() - lck.close() - - return bl - -def run_rpm_builder(b): - if os.fork() == 0: - return - else: - rpm_builder.main_for(b) - sys.exit(0) - -def main(): - init_conf() - for b in builders_order(): - run_rpm_builder(b) - # give builder some time to aquire lock - time.sleep(1) - # wait for children to die out - try: - while 1: os.wait() - except: - pass - -if __name__ == '__main__': - loop.run_loop(main)