# 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 _client7, _client1, _client3, _client4, _client2, _client17, _client6, _client11, _client10, _client5, _client9, _client18, _client19
CLIENTS = {
"7": _client7,
"1": _client1,
"3": _client3,
"4": _client4,
"2": _client2,
"17": _client17,
"6": _client6,
"11": _client11,
"10": _client10,
"5": _client5,
"9": _client9,
"18": _client18,
"19": _client19
}
[docs]def lookup_facade(name, version):
"""
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:
facade = getattr(CLIENTS[str(_version)], name)
return facade
except (KeyError, AttributeError):
continue
else:
raise ImportError("No supported version for facade: "
"{}".format(name))
[docs]class TypeFactory:
[docs] @classmethod
def from_connection(cls, connection):
"""
Given a connected Connection object, return an initialized and
connected instance of an API Interface matching the name of
this class.
@param connection: initialized Connection object.
"""
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.connect(connection)
return c
[docs] @classmethod
def best_facade_version(cls, connection):
"""
Returns the best facade version for a given facade. This will help with
trying to provide different functionality for different facade versions.
@param connection: initialized Connection object.
"""
facade_name = cls.__name__
if not facade_name.endswith('Facade'):
raise TypeError('Unexpected class name: {}'.format(facade_name))
facade_name = facade_name[:-len('Facade')]
return connection.facades.get(facade_name)
[docs]class ActionFacade(TypeFactory):
pass
[docs]class ActionPrunerFacade(TypeFactory):
pass
[docs]class AdminFacade(TypeFactory):
pass
[docs]class AgentFacade(TypeFactory):
pass
[docs]class AgentLifeFlagFacade(TypeFactory):
pass
[docs]class AllModelWatcherFacade(TypeFactory):
pass
[docs]class AllWatcherFacade(TypeFactory):
pass
[docs]class AnnotationsFacade(TypeFactory):
pass
[docs]class ApplicationFacade(TypeFactory):
pass
[docs]class ApplicationOffersFacade(TypeFactory):
pass
[docs]class ApplicationScalerFacade(TypeFactory):
pass
[docs]class BackupsFacade(TypeFactory):
pass
[docs]class BlockFacade(TypeFactory):
pass
[docs]class BundleFacade(TypeFactory):
pass
[docs]class CAASAdmissionFacade(TypeFactory):
pass
[docs]class CAASAgentFacade(TypeFactory):
pass
[docs]class CAASApplicationFacade(TypeFactory):
pass
[docs]class CAASApplicationProvisionerFacade(TypeFactory):
pass
[docs]class CAASFirewallerFacade(TypeFactory):
pass
[docs]class CAASFirewallerSidecarFacade(TypeFactory):
pass
[docs]class CAASModelConfigManagerFacade(TypeFactory):
pass
[docs]class CAASModelOperatorFacade(TypeFactory):
pass
[docs]class CAASOperatorFacade(TypeFactory):
pass
[docs]class CAASOperatorProvisionerFacade(TypeFactory):
pass
[docs]class CAASOperatorUpgraderFacade(TypeFactory):
pass
[docs]class CAASUnitProvisionerFacade(TypeFactory):
pass
[docs]class CharmDownloaderFacade(TypeFactory):
pass
[docs]class CharmRevisionUpdaterFacade(TypeFactory):
pass
[docs]class CharmsFacade(TypeFactory):
pass
[docs]class CleanerFacade(TypeFactory):
pass
[docs]class ClientFacade(TypeFactory):
pass
[docs]class CloudFacade(TypeFactory):
pass
[docs]class ControllerFacade(TypeFactory):
pass
[docs]class CredentialManagerFacade(TypeFactory):
pass
[docs]class CredentialValidatorFacade(TypeFactory):
pass
[docs]class CrossControllerFacade(TypeFactory):
pass
[docs]class CrossModelRelationsFacade(TypeFactory):
pass
[docs]class CrossModelSecretsFacade(TypeFactory):
pass
[docs]class DeployerFacade(TypeFactory):
pass
[docs]class DiskManagerFacade(TypeFactory):
pass
[docs]class EntityWatcherFacade(TypeFactory):
pass
[docs]class EnvironUpgraderFacade(TypeFactory):
pass
[docs]class ExternalControllerUpdaterFacade(TypeFactory):
pass
[docs]class FacadeVersions(TypeFactory):
pass
[docs]class FilesystemAttachmentsWatcherFacade(TypeFactory):
pass
[docs]class FirewallRulesFacade(TypeFactory):
pass
[docs]class FirewallerFacade(TypeFactory):
pass
[docs]class HighAvailabilityFacade(TypeFactory):
pass
[docs]class HostKeyReporterFacade(TypeFactory):
pass
[docs]class InstanceMutaterFacade(TypeFactory):
pass
[docs]class InstancePollerFacade(TypeFactory):
pass
[docs]class KeyManagerFacade(TypeFactory):
pass
[docs]class KeyUpdaterFacade(TypeFactory):
pass
[docs]class LeadershipServiceFacade(TypeFactory):
pass
[docs]class LifeFlagFacade(TypeFactory):
pass
[docs]class LogForwardingFacade(TypeFactory):
pass
[docs]class LoggerFacade(TypeFactory):
pass
[docs]class MachineActionsFacade(TypeFactory):
pass
[docs]class MachineManagerFacade(TypeFactory):
pass
[docs]class MachineUndertakerFacade(TypeFactory):
pass
[docs]class MachinerFacade(TypeFactory):
pass
[docs]class MeterStatusFacade(TypeFactory):
pass
[docs]class MetricsAdderFacade(TypeFactory):
pass
[docs]class MetricsDebugFacade(TypeFactory):
pass
[docs]class MetricsManagerFacade(TypeFactory):
pass
[docs]class MigrationFlagFacade(TypeFactory):
pass
[docs]class MigrationMasterFacade(TypeFactory):
pass
[docs]class MigrationMinionFacade(TypeFactory):
pass
[docs]class MigrationStatusWatcherFacade(TypeFactory):
pass
[docs]class MigrationTargetFacade(TypeFactory):
pass
[docs]class ModelConfigFacade(TypeFactory):
pass
[docs]class ModelGenerationFacade(TypeFactory):
pass
[docs]class ModelManagerFacade(TypeFactory):
pass
[docs]class ModelSummaryWatcherFacade(TypeFactory):
pass
[docs]class ModelUpgraderFacade(TypeFactory):
pass
[docs]class NotifyWatcherFacade(TypeFactory):
pass
[docs]class OfferStatusWatcherFacade(TypeFactory):
pass
[docs]class PayloadsFacade(TypeFactory):
pass
[docs]class PayloadsHookContextFacade(TypeFactory):
pass
[docs]class PingerFacade(TypeFactory):
pass
[docs]class ProvisionerFacade(TypeFactory):
pass
[docs]class ProxyUpdaterFacade(TypeFactory):
pass
[docs]class RaftLeaseFacade(TypeFactory):
pass
[docs]class RebootFacade(TypeFactory):
pass
[docs]class RelationStatusWatcherFacade(TypeFactory):
pass
[docs]class RelationUnitsWatcherFacade(TypeFactory):
pass
[docs]class RemoteRelationWatcherFacade(TypeFactory):
pass
[docs]class RemoteRelationsFacade(TypeFactory):
pass
[docs]class ResourcesFacade(TypeFactory):
pass
[docs]class ResourcesHookContextFacade(TypeFactory):
pass
[docs]class RetryStrategyFacade(TypeFactory):
pass
[docs]class SSHClientFacade(TypeFactory):
pass
[docs]class SecretBackendsFacade(TypeFactory):
pass
[docs]class SecretBackendsManagerFacade(TypeFactory):
pass
[docs]class SecretBackendsRotateWatcherFacade(TypeFactory):
pass
[docs]class SecretsDrainFacade(TypeFactory):
pass
[docs]class SecretsFacade(TypeFactory):
pass
[docs]class SecretsManagerFacade(TypeFactory):
pass
[docs]class SecretsRevisionWatcherFacade(TypeFactory):
pass
[docs]class SecretsTriggerWatcherFacade(TypeFactory):
pass
[docs]class SingularFacade(TypeFactory):
pass
[docs]class SpacesFacade(TypeFactory):
pass
[docs]class StatusHistoryFacade(TypeFactory):
pass
[docs]class StorageFacade(TypeFactory):
pass
[docs]class StorageProvisionerFacade(TypeFactory):
pass
[docs]class StringsWatcherFacade(TypeFactory):
pass
[docs]class SubnetsFacade(TypeFactory):
pass
[docs]class UndertakerFacade(TypeFactory):
pass
[docs]class UnitAssignerFacade(TypeFactory):
pass
[docs]class UniterFacade(TypeFactory):
pass
[docs]class UpgradeSeriesFacade(TypeFactory):
pass
[docs]class UpgradeStepsFacade(TypeFactory):
pass
[docs]class UpgraderFacade(TypeFactory):
pass
[docs]class UserManagerFacade(TypeFactory):
pass
[docs]class UserSecretsDrainFacade(TypeFactory):
pass
[docs]class UserSecretsManagerFacade(TypeFactory):
pass
[docs]class VolumeAttachmentPlansWatcherFacade(TypeFactory):
pass
[docs]class VolumeAttachmentsWatcherFacade(TypeFactory):
pass