Feature/api version support (#109)
authorPete Vander Giessen <petevg@gmail.com>
Wed, 19 Apr 2017 21:21:38 +0000 (17:21 -0400)
committerGitHub <noreply@github.com>
Wed, 19 Apr 2017 21:21:38 +0000 (17:21 -0400)
commit1a3cee44420e79fda92943edf636eaddb393145e
tree78649a19e3517b453b008220fb2735af18341c85
parented0017cc2049050002f23d1b9e1ef95ff8448e5c
Feature/api version support (#109)

Set of changes that adds basic Facade Version support.

Instead of building a monolithic _client.py, we build a _client<version>.py for each integer Facade version, and put Facades there.

One issue is that we store the auxillary classes in a single, monolithic _definitions.py. We should probably refactor to split those up by Facade version. For now, they all seem to be backwards compatible, and all tests pass.

(I've tested against 2.0.2, 2.1.2, 2.2-alpha1 and 2.2-beta2.)

Also ninja'd in a call to the Pinger class, which should prevent timeouts in JaaS.
40 files changed:
Makefile
examples/allwatcher.py
examples/fullstatus.py
juju/application.py
juju/client/_client.py
juju/client/_client1.py [new file with mode: 0644]
juju/client/_client2.py [new file with mode: 0644]
juju/client/_client3.py [new file with mode: 0644]
juju/client/_client4.py [new file with mode: 0644]
juju/client/_client5.py [new file with mode: 0644]
juju/client/_definitions.py [new file with mode: 0644]
juju/client/client.py
juju/client/codegen.py
juju/client/connection.py
juju/client/facade.py
juju/client/overrides.py
juju/client/schemas-20160608.json [deleted file]
juju/client/schemas-juju-2.0.0.json [new file with mode: 0644]
juju/client/schemas-juju-2.0.1.json [new file with mode: 0644]
juju/client/schemas-juju-2.0.2.json [new file with mode: 0644]
juju/client/schemas-juju-2.0.3.json [new file with mode: 0644]
juju/client/schemas-juju-2.1.0.json [new file with mode: 0644]
juju/client/schemas-juju-2.1.1.json [new file with mode: 0644]
juju/client/schemas-juju-2.1.2.json [new file with mode: 0644]
juju/client/schemas-juju-2.2-alpha1.json [new file with mode: 0644]
juju/client/schemas-juju-2.2-beta1.json [new file with mode: 0644]
juju/client/schemas-juju-2.2-beta2.json [new file with mode: 0644]
juju/client/schemas-juju-latest.json [new file with mode: 0644]
juju/client/schemas.json [deleted file]
juju/client/version_map.py [new file with mode: 0644]
juju/client/watcher.py [deleted file]
juju/controller.py
juju/machine.py
juju/model.py
juju/unit.py
tests/integration/test_client.py
tests/integration/test_connection.py
tests/integration/test_controller.py
tests/integration/test_errors.py
tests/unit/test_client.py [new file with mode: 0644]