Use case for: min-version

Stuart Bishop stuart.bishop at canonical.com
Tue Aug 11 07:46:28 UTC 2015


On 11 August 2015 at 03:32, Matt Bruzek <matthew.bruzek at canonical.com> wrote:
>
> We wrote a charm that needed election logic, so we used the new Juju feature
> "is_leader".  A user was interested in using a bundle that contained this
> charm and it failed on them.  It was hard to track down the cause of the
> problem.  It appears they were using an earlier version of Juju that is
> available from universe and only the PPA had the more current version.
>
> Read more about the problem here:
> https://bugs.launchpad.net/charms/+source/etcd/+bug/1483380
>
> I heard the "min-version" feature discussed at previous Cloud sprints but to
> my knowledge we do not have it implemented yet.  The idea was a charm could
> specify in metadata.yaml what min-version of Juju they support.
>
> There are a lot of new features that juju-core are cranking out (and that is
> *awesome*)!  We have already run into this problem with a real user, and
> will have the problem in the future.
>
> Can we reopen the discussion of min-version?  Or some other method of
> preventing this kind of problem in the future?

charmhelpers already supports this with
charmhelpers.core.hookenv.has_juju_version, thanks to Curtis who
described a reliable way of accessing it.

Adding it to the official hook environment is
https://bugs.launchpad.net/juju-core/+bug/1455368

It is particularly useful for:

hookenv.status_set('blocked', "I'm in a right pickle. Help!")
if hookenv.has_juju_version('1.24'):
    raise SystemExit(0)  # Blocked state, 1.24+
raise SytemExit(1)  # Error state, <1.23

I've also got version checks in charmhelpers.coordinator, which
requires leadership.

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



More information about the Juju-dev mailing list