3.4.21. Web Server Classes¶
Most of the source in https://github.com/buildbot/buildbot/blob/master/master/buildbot/www is self-explanatory. However, a few classes and methods deserve some special mention.
3.4.21.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
instanceReturns: 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, 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)
-