X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=modules%2Flibjuju%2Fjuju%2Fclient%2F_client.py;h=d959a56b27c80cb761065e3a3fe7555ac21189cc;hp=d510e1145cd226f47ee9a50ccbbf9a52b1b61011;hb=bf79352ca652b228c5c216564cc512b635e3c5e4;hpb=68858c1915122c2dbc8999a5cd3229694abf5f3a diff --git a/modules/libjuju/juju/client/_client.py b/modules/libjuju/juju/client/_client.py index d510e11..d959a56 100644 --- a/modules/libjuju/juju/client/_client.py +++ b/modules/libjuju/juju/client/_client.py @@ -1,10 +1,8 @@ # DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. # Changes will be overwritten/lost when the file is regenerated. -from juju.client._definitions import * - from juju.client import _client1, _client2, _client3, _client4, _client5 - +from juju.client._definitions import * # noqa CLIENTS = { "1": _client1, @@ -15,22 +13,21 @@ CLIENTS = { } - def lookup_facade(name, version): """ Given a facade name and version, attempt to pull that facade out of the correct client.py file. """ - try: - facade = getattr(CLIENTS[str(version)], name) - except KeyError: - raise ImportError("No facades found for version {}".format(version)) - except AttributeError: - raise ImportError( - "No facade with name '{}' in version {}".format(name, version)) - return facade - + for _version in range(int(version), 0, -1): + try: + facade = getattr(CLIENTS[str(_version)], name) + return facade + except (KeyError, AttributeError): + continue + else: + raise ImportError("No supported version for facade: " + "{}".format(name)) class TypeFactory: @@ -44,7 +41,13 @@ class TypeFactory: @param connection: initialized Connection object. """ - version = connection.facades[cls.__name__[:-6]] + facade_name = cls.__name__ + if not facade_name.endswith('Facade'): + raise TypeError('Unexpected class name: {}'.format(facade_name)) + facade_name = facade_name[:-len('Facade')] + version = connection.facades.get(facade_name) + if version is None: + raise Exception('No facade {} in facades {}'.format(facade_name, connection.facades)) c = lookup_facade(cls.__name__, version) c = c() @@ -363,5 +366,3 @@ class UserManagerFacade(TypeFactory): class VolumeAttachmentsWatcherFacade(TypeFactory): pass - -