3.5.20. 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.5.20.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
Resourceclass.It adds support for resources getting notified when the master is reconfigured.
-
needsReconfig¶ If True,
reconfigResourcewill be called on reconfig.
-
reconfigResource(new_config)¶ Parameters: new_config – new MasterConfiginstanceReturns: Deferred if desired Reconfigure this resource.
It’s surprisingly difficult to render a Twisted Web resource asynchronously. This 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 return a Deferred, with the givenrequest. The value returned from this callable will be converted to an HTTP response. Exceptions, includingErrorsubclasses, 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)
-