3.10.19. Web Server Classes
Most of the source in master/buildbot/www is self-explanatory. However, a few classes and methods deserve some special mention.
3.10.19.1. Resources
- class buildbot.www.resource.Redirect(url)
This is a subclass of Twisted Web’s
Error
. If this is raised withinasyncRenderHelper
, the user will be redirected to the given URL.
- class buildbot.www.resource.Resource
This class specializes the usual Twisted Web
Resource
class.It adds support for resources getting notified when the master is reconfigured.
- needsReconfig
If True,
reconfigResource
will be called on reconfig.
- reconfigResource(new_config)
- Parameters:
new_config – new
MasterConfig
instance- Returns:
Deferred if desired
Reconfigure this resource.
It’s surprisingly difficult to render a Twisted Web resource asynchronously. This next method makes it quite a bit easier.
- asyncRenderHelper(request, callable, writeError=None)
- Parameters:
request – the request instance
callable – the render function
writeError – optional callable for rendering errors
This method will call
callable
, which can be async or a Deferred, with the givenrequest
. The value returned from this callable will be converted to an HTTP response. Exceptions, includingError
subclasses, are handled properly. If the callable raisesRedirect
, the response will be a suitable HTTP 302 redirect.Use this method as follows:
def render_GET(self, request): return self.asyncRenderHelper(request, self.renderThing)