]>
Commit | Line | Data |
---|---|---|
074b4414 MM |
1 | # vi: encoding=utf-8 ts=8 sts=4 sw=4 et |
2 | ||
97c8f39c | 3 | import os |
81a433b3 | 4 | import sys |
97c8f39c | 5 | import time |
6a32e171 | 6 | import datetime |
08f73bbc MM |
7 | |
8 | from config import config, init_conf | |
97c8f39c | 9 | import util |
d5f2e585 | 10 | import chroot |
08f73bbc MM |
11 | import ftp |
12 | import path | |
97c8f39c MM |
13 | |
14 | def 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 | 23 | def 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 | 36 | def handle_src(): |
08f73bbc | 37 | send_rpmqa() |
9be34149 | 38 | clean_dir(path.www_dir+'/srpms', 2592000) # a month |
074b4414 MM |
39 | |
40 | def 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 | |
61 | if __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 |