Agent API Versioning and Upgrades

William Reade william.reade at canonical.com
Thu Sep 18 10:44:36 UTC 2014


On Wed, Sep 17, 2014 at 11:15 AM, Dimiter Naydenov
<dimiter.naydenov at canonical.com> wrote:
>  2. Even if not all state server have synchronized some time after the
> upgrade, it's possible for the worker to connect to an apiserver which
> is not yet "fully upgraded" to support APIV1. The worker tries to
> connect, requests version 1, does not get it and terminates,
> triggering a restart and hopefully connecting to another apiserver
> which supports APIV1 (or keeps restarting until it does, but it should
> be for a relatively short time).

Rather than failing out, I'd prefer to see us generalise the "waiting
for state server to be upgraded" approach used in
Uniter.getJoinedRelations -- it's good that we can and do recover, but
it'd be even better if we anticipated the situation and logged it
calmly at info level (rather than spamming the log with errors that
aren't really errors).

> So, once there's an upgrade step in place, I see no point in keeping
> the older worker code (using APIV0 only) around. The only reason for
> keeping the old code is if we happen to connect to an apiserver which
> does not support APIV1 (therefore we can't use the new worker code
> which only works with APIV1) and have to fall back to the old code.

+1 to dropping old worker code, though.

Cheers
William



More information about the Juju-dev mailing list