1   
 2   
 3   
 4   
 5   
 6   
 7   
 8   
 9   
10   
11   
12   
13   
14   
15   
16  from twisted.web.util import redirectTo 
17   
18  from buildbot.status.web.base import HtmlResource, path_to_authfail 
19  from buildbot.util.eventual import eventually 
20   
21 -class RootPage(HtmlResource): 
 22      pageTitle = "Buildbot" 
23   
24 -    def content(self, request, cxt): 
 25          status = self.getStatus(request) 
26   
27          if request.path == '/shutdown': 
28              if self.getAuthz(request).actionAllowed("cleanShutdown", request): 
29                  eventually(status.cleanShutdown) 
30                  return redirectTo("/", request) 
31              else: 
32                  return redirectTo(path_to_authfail(request), request) 
33          elif request.path == '/cancel_shutdown': 
34              if self.getAuthz(request).actionAllowed("cleanShutdown", request): 
35                  eventually(status.cancelCleanShutdown) 
36                  return redirectTo("/", request) 
37              else: 
38                  return redirectTo(path_to_authfail(request), request) 
39   
40          cxt.update( 
41                  shutting_down = status.shuttingDown, 
42                  shutdown_url = request.childLink("shutdown"), 
43                  cancel_shutdown_url = request.childLink("cancel_shutdown"), 
44                  ) 
45          template = request.site.buildbot_service.templates.get_template("root.html") 
46          return template.render(**cxt) 
  47