It doesn't seem obvious from earlier updates to this ticket, but this occurs when the streams.canonical.com metadata differs from the cache in the local OpenStack cloud. This bug occurs when the local cloud's syncing is broken but the controller can reach streams.c.c and see that there is an update available. What appears to be happening is that juju status is using only the presence of new versions in streams.c.c as a flag, whereas juju upgrade-juju is using streams.c.c plus the local cache.
What I think the behaviour should be is:
1) Warn when the streams.c.c and locally-available agents don't match.
2) Make juju status and juju upgrade-juju use the same check for upgrade availability, which takes into account both sources.
It doesn't seem obvious from earlier updates to this ticket, but this occurs when the streams. canonical. com metadata differs from the cache in the local OpenStack cloud. This bug occurs when the local cloud's syncing is broken but the controller can reach streams.c.c and see that there is an update available. What appears to be happening is that juju status is using only the presence of new versions in streams.c.c as a flag, whereas juju upgrade-juju is using streams.c.c plus the local cache.
What I think the behaviour should be is:
1) Warn when the streams.c.c and locally-available agents don't match.
2) Make juju status and juju upgrade-juju use the same check for upgrade availability, which takes into account both sources.