Package buildbot :: Package status :: Module html :: Class Waterfall
[frames | no frames]

Class Waterfall

       ComparableMixin --+    
                         |    
           Service --+   |    
                     |   |    
          MultiService --+    
                         |    
        StatusReceiver --+    
                         |    
StatusReceiverMultiService --+
                             |
                            Waterfall


I implement the primary web-page status interface, called a 'Waterfall Display' because builds and steps are presented in a grid of boxes which move downwards over time. The top edge is always the present. Each column represents a single builder. Each box describes a single Step, which may have logfiles or other status information.

All these pages are served via a web server of some sort. The simplest approach is to let the buildmaster run its own webserver, on a given TCP port, but it can also publish its pages to a twisted.web.distrib distributed web server (which lets the buildbot pages be a subset of some other web server).

Since 0.6.3, BuildBot defines class attributes on elements so they can be styled with CSS stylesheets. Buildbot uses some generic classes to identify the type of object, and some more specific classes for the various kinds of those types. It does this by specifying both in the class attributes where applicable, separated by a space. It is important that in your CSS you declare the more generic class styles above the more specific ones. For example, first define a style for .Event, and below that for .SUCCESS

The following CSS class names are used:
Method Summary
  __init__(self, http_port, distrib_port, allowForce, categories, css, favicon, robots_txt)
To have the buildbot run its own web server, pass a port number to http_port.
  __repr__(self)
  setServiceParent(self, parent)
  setup(self)
    Inherited from StatusReceiver
  builderAdded(self, builderName, builder)
  builderChangedState(self, builderName, state)
  builderRemoved(self, builderName)
  buildETAUpdate(self, build, ETA)
  buildFinished(self, builderName, build, results)
  buildsetSubmitted(self, buildset)
  buildStarted(self, builderName, build)
  logChunk(self, build, step, log, channel, text)
  logFinished(self, build, step, log)
  logStarted(self, build, step, log)
  stepETAUpdate(self, build, step, ETA, expectations)
  stepFinished(self, build, step, results)
  stepStarted(self, build, step)
    Inherited from MultiService
  __iter__(self)
  addService(self, service)
  getServiceNamed(self, name)
  privilegedStartService(self)
  removeService(self, service)
  startService(self)
  stopService(self)
    Inherited from Service
  __getstate__(self)
  disownServiceParent(self)
  setName(self, name)
    Inherited from ComparableMixin
  __cmp__(self, them)
  __hash__(self)

Instance Variable Summary
buildbot.master.BuildMaster parent: like all status plugins, this object is a child of the BuildMaster, so .parent points to a buildbot.master.BuildMaster instance, through which the status-reporting object is acquired.

Class Variable Summary
list compare_attrs = ['http_port', 'distrib_port', 'allowForc...
    Inherited from StatusReceiverMultiService
Implements __implemented__ = <implementedBy buildbot.status.base.St...
ClassProvides __provides__ = <zope.interface.declarations.ClassProvide...
    Inherited from StatusReceiver
ClassProvides __providedBy__ = <zope.interface.declarations.ClassProvi...
    Inherited from Service
NoneType name = None                                                                  
int running = 0                                                                     

Method Details

__init__(self, http_port=None, distrib_port=None, allowForce=True, categories=None, css='/home/warner/stuff/Projects/BuildBot/trees/rel-0.7.5/bui..., favicon='/home/warner/stuff/Projects/BuildBot/trees/rel-0.7.5/bui..., robots_txt=None)
(Constructor)

To have the buildbot run its own web server, pass a port number to http_port. To have it run a web.distrib server
Parameters:
http_port - a strports specification describing which port the buildbot should use for its web server, with the Waterfall display as the root page. For backwards compatibility this can also be an int. Use 'tcp:8000' to listen on that port, or 'tcp:12345:interface=127.0.0.1' if you only want local processes to connect to it (perhaps because you are using an HTTP reverse proxy to make the buildbot available to the outside world, and do not want to make the raw port visible).
           (type=int or twisted.application.strports string)
distrib_port - Use this if you want to publish the Waterfall page using web.distrib instead. The most common case is to provide a string that is an absolute pathname to the unix socket on which the publisher should listen (os.path.expanduser(~/.twistd-web-pb) will match the default settings of a standard twisted.web 'personal web server'). Another possibility is to pass an integer, which means the publisher should listen on a TCP socket, allowing the web server to be on a different machine entirely. Both forms are provided for backwards compatibility; the preferred form is a strports specification like 'unix:/home/buildbot/.twistd-web-pb'. Providing a non-absolute pathname will probably confuse the strports parser.
           (type=int or twisted.application.strports string)
allowForce - if True, present a 'Force Build' button on the per-Builder page that allows visitors to the web site to initiate a build. If False, don't provide this button.
           (type=bool)
favicon - if set, provide the pathname of an image file that will be used for the 'favicon.ico' resource. Many browsers automatically request this file and use it as an icon in any bookmark generated from this site. Defaults to the buildbot/buildbot.png image provided in the distribution. Can be set to None to avoid using a favicon at all.
           (type=string)
robots_txt - if set, provide the pathname of a robots.txt file. Many search engines request this file and obey the rules in it. E.g. to disallow them to crawl the status page, put the following two lines in robots.txt:
  User-agent: *
  Disallow: /

           (type=string)
Overrides:
buildbot.status.base.StatusReceiverMultiService.__init__

setServiceParent(self, parent)

Parameters:
parent
           (type=buildbot.master.BuildMaster)
Overrides:
twisted.application.service.Service.setServiceParent

Instance Variable Details

parent

like all status plugins, this object is a child of the BuildMaster, so .parent points to a buildbot.master.BuildMaster instance, through which the status-reporting object is acquired.
Type:
buildbot.master.BuildMaster

Class Variable Details

compare_attrs

Type:
list
Value:
['http_port',
 'distrib_port',
 'allowForce',
 'categories',
 'css',
 'favicon',
 'robots_txt']                                                         

Generated by Epydoc 2.1 on Sun Dec 10 22:04:44 2006 http://epydoc.sf.net