]> git.ipfire.org Git - pbs.git/blob - web/handlers_builders.py
Initial import.
[pbs.git] / web / handlers_builders.py
1 #!/usr/bin/python
2
3 import backend
4
5 from handlers_base import *
6
7 class BuilderListHandler(BaseHandler):
8 def get(self):
9 builders = self.pakfire.builders.get_all()
10
11 self.render("builder-list.html", builders=builders)
12
13
14 class BuilderDetailHandler(BaseHandler):
15 def get(self, hostname):
16 builder = self.pakfire.builders.get_by_name(hostname)
17
18 self.render("builder-detail.html", builder=builder)
19
20
21 class BuilderNewHandler(BaseHandler):
22 def get(self):
23 self.render("builder-new.html")
24
25 def post(self):
26 name = self.get_argument("name")
27
28 # Create a new builder.
29 builder = backend.builders.Builder.new(self.pakfire, name)
30
31 self.render("builder-pass.html", action="new", builder=builder)
32
33
34 class BuilderEditHandler(BaseHandler):
35 @tornado.web.authenticated
36 def get(self, hostname):
37 builder = self.pakfire.builders.get_by_name(hostname)
38 if not builder:
39 raise tornado.web.HTTPError(404, "Builder not found")
40
41 self.render("builder-edit.html", builder=builder)
42
43 @tornado.web.authenticated
44 def post(self, hostname):
45 builder = self.pakfire.builders.get_by_name(hostname)
46 if not builder:
47 raise tornado.web.HTTPError(404, "Builder not found")
48
49 builder.enabled = self.get_argument("enabled", False)
50 builder.build_src = self.get_argument("build_src", False)
51 builder.build_bin = self.get_argument("build_bin", False)
52 builder.build_test = self.get_argument("build_test", False)
53
54 # Save max_jobs.
55 max_jobs = self.get_argument("max_jobs", builder.max_jobs)
56 try:
57 max_jobs = int(max_jobs)
58 except TypeError:
59 max_jobs = 1
60
61 if not max_jobs in (1, 2, 3, 4, 5, 6, 7, 8,):
62 max_jobs = 1
63 builder.max_jobs = max_jobs
64
65 self.redirect("/builder/%s" % builder.hostname)
66
67
68 class BuilderRenewPassphraseHandler(BaseHandler):
69 def get(self, name):
70 builder = self.pakfire.builders.get_by_name(name)
71
72 builder.regenerate_passphrase()
73
74 self.render("builder-pass.html", action="update", builder=builder)
75
76
77 class BuilderDeleteHandler(BaseHandler):
78 def get(self, name):
79 builder = self.pakfire.builders.get_by_name(name)
80
81 confirmed = self.get_argument("confirmed", None)
82 if confirmed:
83 builder.delete()
84 self.redirect("/builders")
85 return
86
87 self.render("builder-delete.html", builder=builder)