ReleaseEngineering/Applications/Clobberer: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 31: Line 31:
= Testing/Updating =
= Testing/Updating =


Basic patch testing can be done on cruncher which has netflows open to the database server.  Run clobberer's index.php from the command-line and [http://stackoverflow.com/questions/5655284/how-to-pass-parameters-from-command-line-to-post-in-php-script pass parameters] to the script by temporarily pasting this snippet above the first include statement:
Clobberer is a Flask blueprint, and part of the RelengAPI project. For information about Testing/Updating see the project readme: https://github.com/mozilla/build-relengapi-clobberer
 
/* if started from commandline, wrap parameters to $_POST and $_GET */
if (!isset($_SERVER["HTTP_HOST"])) {
  parse_str($argv[1], $_GET);
  parse_str($argv[1], $_POST);
}
 
And run the script like so:
 
$ php index.php 'branch=mozilla-inbound'
 
Redirect STDOUT to a file and compare before/after output and script timings to ensure your changes run as expected.  Attach a patch to a bug, get review, and proceed to [https://mana.mozilla.org/wiki/pages/viewpage.action?pageId=24805981#clobberer.pvt.build.mozilla.orgetal.-Monitoring mana page] for deployment instructions.


= More =
= More =
See [https://mana.mozilla.org/wiki/pages/viewpage.action?pageId=24805981 the websites page]
See [https://mana.mozilla.org/wiki/pages/viewpage.action?pageId=24805981 the websites page]

Revision as of 04:46, 22 October 2014

Application Description

The clobberer allows developers to "clobber" particular build directories (objdirs) on particular slaves. This is sometimes necessary if a change is committed that is not compatible with previous objdirs, or occasionally when a compile failure results in a bogus objdir.

The application has an outward-facing web interface for developers, and also provides an internal web service which buildslaves contact to determine what build directories they should clobber.

There are several vhosts involved here:

  • API
   * http://clobberer.pvt.build.mozilla.org - production API
   * http://clobberer-preproduction.pvt.build.mozilla.org - preproduction API
   * https://api-pub-build.allizom.org/clobberer/lastclobber - staging API
  • UI
   * production
       * http://clobberer.pub.build.mozilla.org - http 302
       * https://secure.pub.build.mozilla.org/clobberer - https
   * staging
       * https://api-pub-build.allizom.org/clobberer

Requirements

Python MySQL-python

Resources

Security

Clobberer uses the LDAP username verified and supplied by Apache, with some users having slightly elevated priviledges (the ability to clobber release jobs).

Testing/Updating

Clobberer is a Flask blueprint, and part of the RelengAPI project. For information about Testing/Updating see the project readme: https://github.com/mozilla/build-relengapi-clobberer

More

See the websites page