The pulsetranslator script consumes Mozilla buildbot pulse messages and then re-publishes them in a normalized format. It does this because native buildbot messages do not share any consistent structure, and change frequently and without warning. Consuming them directly is therefore error-prone and subject to frequent failure.
The normalized messages are published to the exchange "exchange/build/normalized".
Installing, Configuring, and Running
Install pulsetranslator as any regular Python package:
python setup.py install
You'll need to create a ini-style config file with information on the Pulse accounts. It should have both [publisher] and [consumer] sections, and both must contain at least "user" and "password" options. They can also include any of the standard mozillapulse configuration options.
The minimum command line to run pulsetranslator is
runtranslator --pulse-cfg=<path to config file>
You can get help on other options by running
To test specific buildbot pulse messages, you can push a locally stored JSON file into the translator. It's recommended to use the --display-only option, to only log the final normalized message to the console.
runtranslator --display-only --push-message <path_to_json_file>
Please keep in mind that in case of errors, details can be found in the specific log files under "logs" sub directory.
For talos tests, the same format applies, except that the first part of the key is 'talos' instead of 'unittest'. For example:
For simple uses, you may be able to consume messages directly from the "exchange/build/normalized" exchange. For more complex uses, you may find it easier to use pulsebuildmonitor, which can filter messages for you based on a number of criteria. See the pulsebuildmonitor README for more details.