Add Juju Public Key
[osm/N2VC.git] / modules / libjuju / juju / client / _client.py
index d510e11..bfa9e6f 100644 (file)
@@ -3,34 +3,36 @@
 
 from juju.client._definitions import *
 
 
 from juju.client._definitions import *
 
-from juju.client import _client1, _client2, _client3, _client4, _client5
+from juju.client import _client2, _client1, _client3, _client4, _client5, _client8, _client7, _client9
 
 
 CLIENTS = {
 
 
 CLIENTS = {
-    "1": _client1,
     "2": _client2,
     "2": _client2,
+    "1": _client1,
     "3": _client3,
     "4": _client4,
     "3": _client3,
     "4": _client4,
-    "5": _client5
+    "5": _client5,
+    "8": _client8,
+    "7": _client7,
+    "9": _client9
 }
 
 
 }
 
 
-
 def lookup_facade(name, version):
 def lookup_facade(name, version):
-        """
-        Given a facade name and version, attempt to pull that facade out
-        of the correct client<version>.py file.
+    """
+    Given a facade name and version, attempt to pull that facade out
+    of the correct client<version>.py file.
 
 
-        """
+    """
+    for _version in range(int(version), 0, -1):
         try:
         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
-
+            facade = getattr(CLIENTS[str(_version)], name)
+            return facade
+        except (KeyError, AttributeError):
+            continue
+    else:
+        raise ImportError("No supported version for facade: "
+                          "{}".format(name))
 
 
 class TypeFactory:
 
 
 class TypeFactory:
@@ -44,7 +46,14 @@ class TypeFactory:
         @param connection: initialized Connection object.
 
         """
         @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()
 
         c = lookup_facade(cls.__name__, version)
         c = c()
@@ -57,6 +66,10 @@ class ActionFacade(TypeFactory):
     pass
 
 
     pass
 
 
+class ActionPrunerFacade(TypeFactory):
+    pass
+
+
 class AgentFacade(TypeFactory):
     pass
 
 class AgentFacade(TypeFactory):
     pass
 
@@ -81,6 +94,10 @@ class ApplicationFacade(TypeFactory):
     pass
 
 
     pass
 
 
+class ApplicationOffersFacade(TypeFactory):
+    pass
+
+
 class ApplicationRelationsWatcherFacade(TypeFactory):
     pass
 
 class ApplicationRelationsWatcherFacade(TypeFactory):
     pass
 
@@ -101,6 +118,26 @@ class BundleFacade(TypeFactory):
     pass
 
 
     pass
 
 
+class CAASAgentFacade(TypeFactory):
+    pass
+
+
+class CAASFirewallerFacade(TypeFactory):
+    pass
+
+
+class CAASOperatorFacade(TypeFactory):
+    pass
+
+
+class CAASOperatorProvisionerFacade(TypeFactory):
+    pass
+
+
+class CAASUnitProvisionerFacade(TypeFactory):
+    pass
+
+
 class CharmRevisionUpdaterFacade(TypeFactory):
     pass
 
 class CharmRevisionUpdaterFacade(TypeFactory):
     pass
 
@@ -125,6 +162,22 @@ class ControllerFacade(TypeFactory):
     pass
 
 
     pass
 
 
+class CredentialManagerFacade(TypeFactory):
+    pass
+
+
+class CredentialValidatorFacade(TypeFactory):
+    pass
+
+
+class CrossControllerFacade(TypeFactory):
+    pass
+
+
+class CrossModelRelationsFacade(TypeFactory):
+    pass
+
+
 class DeployerFacade(TypeFactory):
     pass
 
 class DeployerFacade(TypeFactory):
     pass
 
@@ -141,10 +194,22 @@ class EntityWatcherFacade(TypeFactory):
     pass
 
 
     pass
 
 
+class ExternalControllerUpdaterFacade(TypeFactory):
+    pass
+
+
+class FanConfigurerFacade(TypeFactory):
+    pass
+
+
 class FilesystemAttachmentsWatcherFacade(TypeFactory):
     pass
 
 
 class FilesystemAttachmentsWatcherFacade(TypeFactory):
     pass
 
 
+class FirewallRulesFacade(TypeFactory):
+    pass
+
+
 class FirewallerFacade(TypeFactory):
     pass
 
 class FirewallerFacade(TypeFactory):
     pass
 
@@ -253,10 +318,18 @@ class ModelManagerFacade(TypeFactory):
     pass
 
 
     pass
 
 
+class ModelUpgraderFacade(TypeFactory):
+    pass
+
+
 class NotifyWatcherFacade(TypeFactory):
     pass
 
 
 class NotifyWatcherFacade(TypeFactory):
     pass
 
 
+class OfferStatusWatcherFacade(TypeFactory):
+    pass
+
+
 class PayloadsFacade(TypeFactory):
     pass
 
 class PayloadsFacade(TypeFactory):
     pass
 
@@ -281,6 +354,10 @@ class RebootFacade(TypeFactory):
     pass
 
 
     pass
 
 
+class RelationStatusWatcherFacade(TypeFactory):
+    pass
+
+
 class RelationUnitsWatcherFacade(TypeFactory):
     pass
 
 class RelationUnitsWatcherFacade(TypeFactory):
     pass
 
@@ -289,6 +366,10 @@ class RemoteApplicationWatcherFacade(TypeFactory):
     pass
 
 
     pass
 
 
+class RemoteRelationsFacade(TypeFactory):
+    pass
+
+
 class RemoteRelationsWatcherFacade(TypeFactory):
     pass
 
 class RemoteRelationsWatcherFacade(TypeFactory):
     pass
 
@@ -353,6 +434,10 @@ class UniterFacade(TypeFactory):
     pass
 
 
     pass
 
 
+class UpgradeSeriesFacade(TypeFactory):
+    pass
+
+
 class UpgraderFacade(TypeFactory):
     pass
 
 class UpgraderFacade(TypeFactory):
     pass
 
@@ -361,7 +446,9 @@ class UserManagerFacade(TypeFactory):
     pass
 
 
     pass
 
 
-class VolumeAttachmentsWatcherFacade(TypeFactory):
+class VolumeAttachmentPlansWatcherFacade(TypeFactory):
     pass
 
 
     pass
 
 
+class VolumeAttachmentsWatcherFacade(TypeFactory):
+    pass