lp:~niemeyer/juju-core/ignore-me

Created by Gustavo Niemeyer and last modified
Get this branch:
bzr branch lp:~niemeyer/juju-core/ignore-me
Only Gustavo Niemeyer can upload to this branch. If you are Gustavo Niemeyer please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Gustavo Niemeyer
Project:
juju-core
Status:
Development

Recent revisions

219. By William Reade

state: make watcher termination clearer, safer

The existing watcher implementations shared a flawed implementation
style: specifically, that closure of the input channel was not
treated as an error. This is presumably because the Stop method also
stopped the watcher that provided the input channel, and this could
happen at any time whatsoever (from the perspective of the loop goroutine);
however, this then meant that the loop goroutine treated any of the
following conditions:

* watcher itself was stopped by tomb.Kill()
* subwatcher was stopped by tomb.Kill()
* subwatcher channel closed for some other reason

...as a sign of clean shutdown; that is to say that all subwatcher errors
were being swallowed silently.

This CL avoids that problem by deferring all cleanup work, including
stoppage of the subwatcher, to the end of the loop goroutine; and, in
the loop goroutine, treating <-w.tomb.Dying() as the only reason to
terminate cleanly. Unexpected closures of the input channel are hence
correctly detected as errors; and expected closures (caused by cleanup)
will never be detected, because we will always have exited the
goroutine loop by the time we stop the subwatcher.

As a consequence, there is no need to wait on subwatcher death: if it dies
while the loop is running the error will be detected soon enough via the
closure of the input channel; but that's not really any reason to abort a
send on the output channel.

Original discussion on https://codereview.appspot.com/6300085/ (which I
appear to have proposed for the wrong target somehow).

R=
CC=
https://codereview.appspot.com/6307081

218. By Dave Cheney

environs: make AttemptStrategy public

I would like to reuse the AttemptStrategy code in the PA to
implement a retry loop at the top level. After a short
discussion on IRC, no good places for this code were found,
but environs.AttemptStrategy appeared to be the least worse
option until a better option arrives.

R=rog, niemeyer
CC=
https://codereview.appspot.com/6294065

217. By Roger Peppe

environs/ec2: fix madeBucket.

Also document the fact that if an Environ is destroyed,
other Environs referring to the same thing may not subsequently
work.
Original proposal at https://codereview.appspot.com/6255050/

R=dfc, fwereade, niemeyer
CC=
https://codereview.appspot.com/6305063

216. By Roger Peppe

state: implement Machine.Units

original merge proposal:
https://codereview.appspot.com/6256070/

R=TheMue, fwereade, niemeyer
CC=
https://codereview.appspot.com/6307072

215. By Roger Peppe

state: small watcher cleanup

R=fwereade
CC=
https://codereview.appspot.com/6295069

214. By Dave Cheney

cmd/jujud: Provisioner should Open it's own state connection

This small branch is extracted from my working copy. By passing the PA
a state.Info, rather than a connected (and possibly shared) state.Conn
it ensures they aren't sharing a single state connection.

R=fwereade, rog, niemeyer
CC=
https://codereview.appspot.com/6298061

213. By Roger Peppe

state: store units inside their respective services

Making this change simplifies a lot of code - no need
to keep a separate sequence numbering system for units,
for example.

(original proposal at https://codereview.appspot.com/6247066/)

R=
CC=
https://codereview.appspot.com/6300060

212. By Gustavo Niemeyer

.lbox: update to juju-core

211. By Gustavo Niemeyer

Translated all paths to use the juju-core project in Launchpad.

210. By Frank Mueller

state: Changed relation service mapping in topology.

The first approach mapped roles to service key and relation
name opposite to todays Python implementation. This reduces
the flexibility for future purposes (e.g. multiple peers).
So the mapping has now been changed back from service keys
to relation role and name.

R=
CC=
https://codereview.appspot.com/6268049

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:~juju/juju-core/trunk
This branch contains Public information 
Everyone can see this information.

Subscribers