]> TLD Linux GIT Repositories - TLD.git/blob - pld-builder.new/PLD_Builder/ftp.py
0d13be63416e28d7e5678f2c9f33dfec564e4542
[TLD.git] / pld-builder.new / PLD_Builder / ftp.py
1 # vi: encoding=utf-8 ts=8 sts=4 sw=4 et
2
3 import path
4 import os
5 import shutil
6 import time
7
8 from config import config
9 import util
10
11 class FTP_Queue:
12     def __init__(self):
13         self.queue = None
14         self.some_failed = 0
15         self.status = ""
16
17     def init(self, g=None, rpmqa=False):
18         self.queue = []
19         if rpmqa:
20             self.requester_email = config.admin_email
21             self.url = config.rpmqa_url
22         else:
23             self.requester_email = g.requester_email
24             if "test-build" in g.flags:
25                 self.url = config.test_ftp_url
26             else:
27                 self.url = config.ftp_url
28
29     def add(self, file, type):
30         # if /dev/null, say bye bye
31         if self.url == "/dev/null":
32             return
33         name = os.path.basename(file)
34         id = util.uuid()
35         shutil.copy(file, path.ftp_queue_dir + '/' + id)
36         self.queue.append({'name': name, 'id': id, 'type': type})
37         st = os.stat(path.ftp_queue_dir + '/' + id)
38         self.status += "%10d %s\n" % (st.st_size, name)
39
40     def flush(self):
41         def desc(l):
42             return """Target: %s/%s
43 Builder: %s
44 Time: %d
45 Type: %s
46 Requester: %s
47 END
48 """ % (self.url, l['name'], config.builder, time.time(), l['type'], self.requester_email)
49
50         for l in self.queue:
51             f = open(path.ftp_queue_dir + '/' + l['id'] + ".desc", "w")
52             f.write(desc(l))
53             f.close()
54
55     def kill(self):
56         for l in self.queue:
57             os.unlink(path.ftp_queue_dir + '/' + l)
58
59 queue = FTP_Queue()
60
61 def add(f, type="rpm"):
62     queue.add(f, type)
63
64 def flush():
65     queue.flush()
66
67 def kill():
68     queue.kill()
69
70 def init(r=None, rpmqa=False):
71     queue.init(r, rpmqa)
72
73 def status():
74     return queue.status
75
76 def clear_status():
77     queue.status = ""