<div dir="ltr">Hi Folks,<div><br></div><div>There's a general issue that's been brewing with core and client access for the last few stable releases, which has gotten quite a bit worse with 1.19 that i wanted to bring up. Namely its how does an api client access the api.</div>
<div><br></div><div>Ignoring history, at the moment with a 'jenv' file is basically required for a client to be able to construct a secure, authenticated connection to the end point as certs, passwords and endpoint url are in jenv file.</div>
<div><br></div><div>Unfortunately the jenv file format is an evolved one rather than a design one, more to the point, its been changing without notice and breaking clients.</div><div><br></div><div>The most recent breaking change from 1.18 to 1.19 is the endpoint addresses have gone from being a list of public api endpoint per server, to a list of all addresses (including lots of unreachable ones) per server with no way of distinguishing which addresses correspond to which server or type/name of network. At the moment the juju cli just initiates connections en masse to all the addresses and stops when it gets a working connection, this is a heavy burden for other clients though.</div>
<div><br></div><div>Ideally the cli client would distinguish which address in the cache its actually using to connect as opposed to just recording a bunch of addresses that don't work. Also it would ideally record network names/types for those addresses and distinguish between multiple servers.</div>
<div><br></div><div>There's a few bugs entries related to this.</div><div><a href="https://bugs.launchpad.net/juju-core/+bug/1308491">https://bugs.launchpad.net/juju-core/+bug/1308491</a></div><div><a href="https://bugs.launchpad.net/juju-core/+bug/1311227">https://bugs.launchpad.net/juju-core/+bug/1311227</a><br>
</div><div><br></div><div>cheers,</div><div><br></div><div>Kapil</div></div>