We could probably set an environment variable for the plugin called
JUJU_BIN that is the juju that invoked it.

Wouldn't be too hard.

Tim

On 07/04/16 17:25, Stuart Bishop wrote:
> On 7 April 2016 at 03:55, Marco Ceppi <marco.ce...@canonical.com> wrote:
>>
>> On Wed, Apr 6, 2016 at 10:07 AM Stuart Bishop <stuart.bis...@canonical.com>
>> wrote:
>>>
>>> On 5 April 2016 at 23:35, Martin Packman <martin.pack...@canonical.com>
>>> wrote:
>>>
>>>> The challenge here is we want Juju 2.0 and all the new functionality
>>>> to be the default on release, but not break our existing users who
>>>> have working Juju 1.X environments and no deployment upgrade path yet.
>>>> So, versions 1 and 2 have to be co-installable, and when upgrading to
>>>> xenial users should get the new version without their existing working
>>>> juju being removed.
>>>>
>>>> There are several ways to accomplish that, but based on feedback from
>>>> the release team, we switched from using update-alternatives to having
>>>> 'juju' on xenial always be 2.0, and exposing the 1.X client via a
>>>> 'juju-1' binary wrapper. Existing scripts can either be changed to use
>>>> the new name, or add the version-specific binaries directory
>>>> '/var/lib/juju-1.25/bin' to the path.
>>>
>>> How do our plugins know what version of juju is in play? Can they
>>> assume that the 'juju' binary found on the path is the juju that
>>> invoked the plugin, or is there some other way to tell using
>>> environment variables or such? Or will all the juju plugins just fail
>>> if they are invoked from the non-default juju version?
>>
>>
>> You can invoke `juju version` from within the plugin and parse the output.
>> That's what I've been doing when I need to distinguish functionality.
> 
> That seems fine if you are invoking the plugin from the default
> unnumbered 'juju'. But running 'juju2 wait' will mean that juju-wait
> will be executing juju 1.x commands and fail. And conversely running
> 'juju1 wait' will invoke juju 2.x and probably fail.
> 
> I think the plugin API needs to be extended to support allowing
> multiple juju versions to coexist. An environment variable would do
> the trick but require every plugin to be fixed. Altering $PATH so
> 'juju' runs the correct juju would allow existing plugins to run
> unmodified (the bulk of them will work with both juju1 and juju2,
> since the cli is similar enough that many plugins will work
> unmodified.
> 


-- 
Juju-dev mailing list
Juju-dev@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/juju-dev

Reply via email to