lp:~niemeyer/juju-core/ignore-me
- Get this branch:
- bzr branch lp:~niemeyer/juju-core/ignore-me
Branch merges
Branch information
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). - 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/) - 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.
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