[Buildbot-devel] Apache aliases and getURLForThing

Daren Grant d.grant at psenterprise.com
Tue Jan 23 17:45:25 UTC 2007



Grig wrote ...
    > 
    > I have this scenario in the Pybots buildbot farm: there are 2
Python
    > branches that are being built, 'trunk' and '2.5'. The builder
names
    > are 'slavename' + 'branch name' -- for example 'x86 Ubuntu Breezy
    > trunk'. The Waterfall setup is the following:
    > 
    > portBase = 9060
    > for i, categories in enumerate([None, 'trunk', '2.5']):
    >     http_port = 'tcp:%d:interface=127.0.0.1' % (portBase + i)
    >     kwds = {}
    >     if categories:
    >         kwds['categories'] = categories
    >    status.append(html.Waterfall(http_port=http_port,
    > allowForce=allowForce,
    >                                 css=buildbot_css, **kwds))
    > 
    > The buildbotURL is:
    > 
    > c['buildbotURL'] = "http://www.python.org/dev/buildbot/community/"
    > 
    > There are also Apache aliases setup so that
    > http://www.python.org/dev/buildbot/community/trunk/ shows the
builders
    > for the trunk and similarly for 2.5.
    > 
    > The problem is that getURLForThing returns URLs of the form:
    > 
    >
http://www.python.org/dev/buildbot/community/x86%20Ubuntu%20Breezy%20t
    > runk/builds/280/step-nose
    > 
    > which are invalid, because they don't contain the branch name
(trunk)
    > after buildbotURL. The correct URL in the case above would be:
    > 
    >
http://www.python.org/dev/buildbot/community/trunk/x86%20Ubuntu%20Bree
    > zy%20trunk/builds/280/step-nose
    > 
    > I hacked the mail notification module and added the branch names
after
    > buildbotURL so that the links included in the notification emails
are
    > correct. But it's an ugly hack. And now I need to hack the modules
    > that handle build details too.
    > 
    > My question is if there's any way to inform getURLForThing about
    > branch names, maybe via categories, so I don't have to resort to
these
    > hacks?
    > 
    > Grig
    > 

Grig, 

I had similar issues having several buildbot category waterfall
displays.
I cannot remember for the life of me which one of these fixed the issue,
but here is a rundown of my working setup.

1 Waterfall is configured with all the categories on port BASE_WATERFALL
( port 8022 ) its one huge page and very messy, but I think its needed.

Additional waterfalls are specified with each of their categories on
ports BASE_WATERFALL + an offset

The buildbot URL configuration in my master.cfg is 

C['buildbotURL'] = "http://buildbot.mydomain.com:/All/"


My Apache configuration for the Virtual Host "buildbot" contains ... 

    ProxyPass /All/ http://myserver.mydomain.com:8022/
    ProxyPassReverse /All/ http://myserver.mydomain.com:8022/

    ProxyPass /Trunk/ http://myserver.mydomain.com:8023/
    ProxyPassReverse /Trunk/ http://myserver.mydomain.com/8023/

    And so on for each waterfall 

I additionally have some redirects like

Redirect /Trunk http://buildbot.mydomain.com/Trunk/
Just to allow people to go to the status page without the need for the
trailing /

I think the solution comes from a combination of the  c['buildbotURL']
being having an extra level from the base URL , and the Fwd and Reverse
Proxies.

As a warning I do not have to be secure on my server as it is only
accessed from an internal network, hence I cannot make any statement as
to the security of using the ProxyPass declarations.

I hope this helps.

Daren
 





More information about the devel mailing list