ReleaseEngineering/Applications/Clobberer: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Undo revision 1023788 by Mrrrgn (talk))
(deleting obsolete page)
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= 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
    * http://clobberer-stage.pvt.build.mozilla.org - staging API
* UI
    * production
        * http://clobberer.pub.build.mozilla.org - http 302
        * https://secure.pub.build.mozilla.org/clobberer - https
    * staging
        * http://clobberer-stage.pub.build.mozilla.org - http 302
        * https://secure.pub.build.mozilla.org/clobberer-stage - https for UI (staging)
= Requirements =
* MySQL server (SQLite is also possible, but we are using MySQL in production and staging)
* PHP and Apache
= Resources =
* two MySQL databases (production and staging)
* runs on the [https://mana.mozilla.org/wiki/display/websites/Releng+web+cluster releng web cluster]
= 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 =
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:
/* 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 =
See [https://mana.mozilla.org/wiki/pages/viewpage.action?pageId=24805981 the websites page]

Latest revision as of 21:49, 19 November 2018