1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 import os
16 import bodhi.masher
17
18 from os.path import join, isfile, isdir
19 from bodhi.push import PushController
20
21 from turbogears import expose, identity, config, redirect
22 from turbogears.identity import SecureResource
23 from turbogears.controllers import Controller
24 from turbogears.toolbox.catwalk import CatWalk
25
27 require = identity.in_group("releng")
28
29 push = PushController()
30 catwalk = CatWalk()
31
32 @expose(template='bodhi.templates.admin')
35
36 @expose(template='bodhi.templates.repodiff')
38 """
39 If a diff is specified, display it; if not, show a list of diffs.
40 """
41 if not isdir(config.get('repodiff_dir')):
42 os.mkdir(config.get('repodiff_dir'))
43 if not diff:
44 return dict(diffs=os.listdir(config.get('repodiff_dir')))
45 else:
46 diff_file = join(config.get('repodiff_dir'), diff)
47 if isfile(diff_file):
48 diff_file = open(diff_file, 'r')
49 output = diff_file.read()
50 diff_file.close()
51 return dict(tg_template='bodhi.templates.diff', diff=output,
52 title=diff)
53 else:
54 flash("Invalid repodiff specified: %s" % diff)
55 raise redirect('/admin')
56
57 @expose(template='bodhi.templates.masher', allow_json=True)
58 - def masher(self, lastlog=None):
59 """
60 Display the current status of the Masher
61 """
62 m = bodhi.masher.get_masher()
63 if lastlog:
64 (logfile, data) = m.lastlog()
65 return dict(title=logfile, text=data,
66 tg_template='bodhi.templates.text')
67 return dict(masher_str=str(m))
68
69 @expose()
70 - def mash(self, tag):
74