guardian/deploy — pull request #26 by sihil (2012-07-13 16:28:24+00:00)
Title: Refactor logging to use messages and report building

The logging system needs to work in real time whilst also
being useful for reports later on. This refactoring uses
messages that contain enough context that you can build
contextual reports using the message stream.

magenta-lib changes:
* replace Log mechanism with MessageBroker - users of the
library can subscribe with a MessageSink to receive
updates of the deploy process
* introduce Message trait with case class implementations
for sending messages about deploy, task and command
status
* add concept of a "Deployer" to identify end user
* add classes for Build and RecipeName for type safety
* move responsibility of task execution into magenta-lib
* added DeployReport which can be constructed from a
complete set of MessageStack objects, as provided to
any MessageSinks - provides an object that can be
rendered and interrogated
* suppressed 'tcgetattr' noise from SSH sessions without
a genuine terminal user

magenta-cli changes:
* refactor to use new MessageBroker mechanism
* new --deployer switch to record name of deployer

riff-raff changes:
* refactor to use new MessageBroker and DeployReport
mechanism introduced to magenta-lib
* refactor templates to use CSS to style reports
* added some debug templates for facilitating styling
changes (without doing real deploys)
* refactor IRC integration