|
|
(10 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]
| |