]> git.pld-linux.org Git - projects/pld-builder.new.git/blame - PLD_Builder/maintainer.py
Switch to https for client/request handler server and between builders communication...
[projects/pld-builder.new.git] / PLD_Builder / maintainer.py
CommitLineData
074b4414
MM
1# vi: encoding=utf-8 ts=8 sts=4 sw=4 et
2
97c8f39c 3import os
81a433b3 4import sys
97c8f39c 5import time
6a32e171 6import datetime
08f73bbc
MM
7
8from config import config, init_conf
97c8f39c 9import util
d5f2e585 10import chroot
08f73bbc
MM
11import ftp
12import path
97c8f39c
MM
13
14def clean_dir(path, max):
15 curtime=time.time()
16 for i in os.listdir(path):
17 if curtime - os.path.getmtime(path+'/'+i) > max:
18 if os.path.isdir(path+'/'+i):
7a9c576f 19 util.clean_tmp(path+'/'+i)
97c8f39c 20 else:
7a9c576f 21 os.unlink(path+'/'+i)
074b4414 22
08f73bbc 23def send_rpmqa():
9be34149 24 tmp = path.build_dir + '/' + util.uuid() + '/'
08f73bbc
MM
25 os.mkdir(tmp)
26 log = tmp + config.rpmqa_filename
6a32e171 27 open(log, 'a').write("Query done at: %s\n" % datetime.datetime.now().isoformat(' '))
08f73bbc
MM
28 chroot.run("rpm -qa|sort", logfile=log)
29 os.chmod(log,0644)
30 ftp.init(rpmqa=True)
31 ftp.add(log)
32 ftp.flush()
33 os.unlink(log)
34 os.rmdir(tmp)
35
074b4414 36def handle_src():
08f73bbc 37 send_rpmqa()
9be34149 38 clean_dir(path.www_dir+'/srpms', 2592000) # a month
074b4414
MM
39
40def handle_bin():
08f73bbc 41 send_rpmqa()
d5f2e585
MM
42 f=chroot.popen("""ls -l --time-style +%s /spools/ready""", 'root')
43 rmpkgs=[]
44 curtime=time.time()
45 for i in f:
46 if i[-4:-1]!='rpm':
47 continue
48 tmp=i.split()
49 mtime=int(tmp[5])
50 pkgname=tmp[6]
51 if curtime - mtime > config.max_keep_time:
52 rmpkgs.append(pkgname)
17d19e1c
MM
53
54 i=0
55 while rmpkgs[i:i+1000]:
56 chroot.run("cd /spools/ready; rm -f %s" % ' '.join(rmpkgs[i:i+1000]), 'root')
57 i=i+1000
d5f2e585 58 f.close()
0f6e9909 59 chroot.run("poldek --mo=nodiff --mkidxz -s /spools/ready")
074b4414
MM
60
61if __name__ == '__main__':
62 init_conf()
63 bb=config.binary_builders[:]
9be34149 64 clean_dir(path.spool_dir+'/builds', 2592000) # a month
074b4414
MM
65 if config.src_builder:
66 try:
67 init_conf(config.src_builder)
68 except:
69 pass
70 else:
71 handle_src()
81a433b3 72 sys.exit(0)
074b4414
MM
73 for b in bb:
74 try:
75 init_conf(b)
76 except:
77 continue
78 else:
79 handle_bin()
80
This page took 0.065224 seconds and 4 git commands to generate.