Feature Request: show running relations in 'juju status'

Stuart Bishop stuart.bishop at canonical.com
Sun Nov 23 07:59:50 UTC 2014


On 19 November 2014 at 19:59, William Reade <william.reade at canonical.com> wrote:
> On Tue, Nov 18, 2014 at 9:37 AM, Stuart Bishop
> <stuart.bishop at canonical.com> wrote:
>> Ok. If there is a goal state, and I am able to wait until the goal
>> state is the actual state, then my needs (and amulet and juju-deployer
>> needs) will be met. It does seem a rather lengthy and long winded way
>> of getting there though. The question I have always needed juju to
>> answer is 'are there any hooks running or are there any hooks queued
>> to run?'. I've always assumed that juju must already know this (or it
>> would be unable to function), but refuses to communicate this single
>> bit of information in any way.
>
> Juju as a system actually doesn't know this. Unit idleness is known
> only by the unit agents themselves, and only implicitly at that -- if
> we're blocking in a particular select clause then we're (probably!)
> idle, and that's it. I agree that exposing idleness would be good, and
> I'm doing some of the preliminary work necessary right now, but it's
> not my current focus: it's just a happy side-effect of what needs to
> be done for leader election.

Ok. I was thinking of a central system tracking the unit states and
firing hooks, but it seems the units are much more independent,
tracking their own state and making their own decisions.


>> That would work too. If all units are in idle state, then the system
>> has reached a steady state and my question answered.
>
> Sort of. It's steady for now, but will not necessarily still be steady
> by the time you're reacted to it -- even if you're the only
> administrator, imagine a cron job that uses juju-run and triggers a
> wave of relation traffic across the system.

Your example is actually a steady state in my mind, in much the same
way a biological system may be in a steady state despite having a
heartbeat. But yes, you can construct some pathological cases where my
heuristic is not good enough to detect when the system has reached an
equilibrium. I am perfectly fine with reporting that the system *was*
in a steady state rather than *is* in a steady state. If your system
is chaotic enough where the difference matters, I think you are better
off fixing it rather than forging ahead attempting to reliably test
and deploy a chaotic system.

-- 
Stuart Bishop <stuart.bishop at canonical.com>



More information about the Juju-dev mailing list