Ensemble Development Report #3

Kapil Thangavelu kapil.thangavelu at canonical.com
Wed Apr 20 10:47:23 UTC 2011

Hi Folks,

I wanted to catch everyone up on the last month of ensemble
development. We've had a number of new features and changes land.

For formula authors there are a few new behaviors of import, some that
break backwards compatiblity.

1. The names of some hooks have have changed, instead of calling
xx-relation-changed, for all three types of relation changes (remote
join, remote changed, remote depart) and passing the change type in an
environment variable, instead they are now broken each into their own
hook (xx-relation-joined, xx-relation-changed, xx-relation-broken).

This got some extended coverage on the ubuntu cloud meeting [1] which
ahmed setup last week, the docs have also been updated to reflect the
new hook usage [2].

Also as part of this change, xx-relation-changed is guaranteed to be
invoked after a xx-relation-joined, based on our limited real world
usage, we found that this was being incorrectly utilized, so we 
matched the behavior to the usage.

[1] http://cloud.ubuntu.com/2011/04/ensemble-cloud-community-meeting-summary/
[2] http://j.mp/ensemble-docs

Many thanks to Clint for updating the principia repository.

2. Next, the relation-get hook CLI API now matches the spec, namely
that it now defaults to getting settings from the remote unit that the
hook is responding to a change for instead of the unit that is
currently executing the hook.

3. Hooks are now optional, previously all hooks were required, and
failing to implement the hoook would be treated as an error. All hooks
are now optional.

4. For the hook CLI API, relation-set setting_name= will now delete
the key from the setting.

5. The example formulas are now just plain bash shell scripts, instead
of python.

New and improved command lines

1. The ensemble status command has been extended to show workflow
status for units and relations. Internally ensemble tracks a unit and
its relations through a statemachine workflow. The state of the unit
and its unit relations are now reported on the command line, which
allows better verification of the status of an Ensemble environment.

2. There's a new subcommand to enable upgrading a service's formula
while its running, ``ensemble formula-upgrade service_name``
This also introduces a new formula hook ``upgrade-formula`` which is
guaranteed to be the first hook executed from the new formula.

There's some discussion of this feature as well in last week's cloud
meeting [1].

Rounding out the new stuff, the default instance launched by ensemble
is now a t1.micro.

There's ongoing work on the ensemble service configuration, firewall
security, formula repositories, and a way to recover from service
units from hook errors.



More information about the Ensemble mailing list