From: Cory Johns Date: Thu, 27 Apr 2017 20:45:28 +0000 (-0400) Subject: Remove VERSION_MAP and rely on facade list from controller (#118) X-Git-Tag: 0.4.1~1 X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=commitdiff_plain;h=6a363710a84d62a6ad1268045f319611f356f453 Remove VERSION_MAP and rely on facade list from controller (#118) Based on feedback from core, the facades list is complete and accurate, but does depend on the connection type. So, we don't need to maintain our own mapping of it. Tested with Juju 2.1.2 and Juju 2.2-beta3 --- diff --git a/juju/client/connection.py b/juju/client/connection.py index c2c6b2d..9bef2a3 100644 --- a/juju/client/connection.py +++ b/juju/client/connection.py @@ -17,7 +17,6 @@ import yaml from juju import tag, utils from juju.client import client -from juju.client.version_map import VERSION_MAP from juju.errors import JujuError, JujuAPIError, JujuConnectionError from juju.utils import IdQueue @@ -478,22 +477,8 @@ class Connection: def build_facades(self, facades): self.facades.clear() - # In order to work around an issue where the juju api is not - # returning a complete list of facades, we simply look up the - # juju version in a pregenerated map, and use that info to - # populate our list of facades. - - # TODO: if a future version of juju fixes this bug, restore - # the following code for that version and higher: - # for facade in facades: - # self.facades[facade['name']] = facade['versions'][-1] - try: - self.facades = VERSION_MAP[self.info['server-version']] - except KeyError: - log.warning("Could not find a set of facades for {}. Using " - "the latest facade set instead".format( - self.info['server-version'])) - self.facades = VERSION_MAP['latest'] + for facade in facades: + self.facades[facade['name']] = facade['versions'][-1] async def login(self): username = self.username diff --git a/juju/client/facade.py b/juju/client/facade.py index 5f37c27..00dd26a 100644 --- a/juju/client/facade.py +++ b/juju/client/facade.py @@ -17,7 +17,6 @@ from . import codegen _marker = object() JUJU_VERSION = re.compile('[0-9]+\.[0-9-]+[\.\-][0-9a-z]+(\.[0-9]+)?') -VERSION_MAP = defaultdict(dict) # Workaround for https://bugs.launchpad.net/juju/+bug/1683906 NAUGHTY_CLASSES = ['ClientFacade', 'Client', 'FullStatus', 'ModelStatusInfo', 'ModelInfo'] @@ -716,25 +715,6 @@ def write_client(captures, options): print(factories[key], file=f) -def write_version_map(options): - """ - In order to work around - https://bugs.launchpad.net/juju/+bug/1682925, we build a map of - the facades that each version supports, and write it to disk here. - - """ - with open("{}/version_map.py".format(options.output_dir), "w") as f: - f.write(HEADER) - f.write("VERSION_MAP = {\n") - for juju_version in sorted(VERSION_MAP.keys()): - f.write(' "{}": {{\n'.format(juju_version)) - for key in VERSION_MAP[juju_version]: - f.write(' "{}": {},\n'.format( - key, VERSION_MAP[juju_version][key])) - f.write(' },\n') - f.write("}\n") - - def generate_facades(options): captures = defaultdict(codegen.Capture) schemas = {} @@ -759,7 +739,6 @@ def generate_facades(options): for schema in schemas[juju_version]: schema.buildDefinitions() buildTypes(schema, captures[schema.version]) - VERSION_MAP[juju_version][schema.name] = schema.version # Build the Facade classes for juju_version in sorted(schemas.keys()): @@ -797,7 +776,6 @@ def main(): last_version = write_facades(captures, options) write_definitions(captures, options, last_version) write_client(captures, options) - write_version_map(options) if __name__ == '__main__': main() diff --git a/juju/client/version_map.py b/juju/client/version_map.py deleted file mode 100644 index fb3f486..0000000 --- a/juju/client/version_map.py +++ /dev/null @@ -1,861 +0,0 @@ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -VERSION_MAP = { - "2.0.0": { - "InstancePoller": 3, - "RelationUnitsWatcher": 1, - "FilesystemAttachmentsWatcher": 2, - "Controller": 3, - "MigrationStatusWatcher": 1, - "Agent": 2, - "LogForwarding": 1, - "Payloads": 1, - "HostKeyReporter": 1, - "Storage": 3, - "RetryStrategy": 1, - "ApplicationScaler": 1, - "Charms": 2, - "MetricsManager": 1, - "Firewaller": 3, - "StatusHistory": 2, - "MetricsDebug": 2, - "DiscoverSpaces": 2, - "ImageMetadata": 2, - "Block": 2, - "MachineManager": 2, - "AllModelWatcher": 2, - "MigrationMaster": 1, - "ModelManager": 2, - "StorageProvisioner": 3, - "Action": 2, - "ModelConfig": 1, - "Singular": 1, - "HighAvailability": 2, - "Machiner": 1, - "StringsWatcher": 1, - "Logger": 1, - "EntityWatcher": 2, - "Resumer": 2, - "Uniter": 4, - "PayloadsHookContext": 1, - "MigrationTarget": 1, - "MachineActions": 1, - "MigrationMinion": 1, - "MigrationFlag": 1, - "Bundle": 1, - "VolumeAttachmentsWatcher": 2, - "Backups": 1, - "Upgrader": 1, - "ProxyUpdater": 1, - "Provisioner": 3, - "MeterStatus": 1, - "AllWatcher": 1, - "Resources": 1, - "Undertaker": 1, - "MetricsAdder": 2, - "Deployer": 1, - "ImageManager": 2, - "LifeFlag": 1, - "KeyManager": 1, - "UserManager": 1, - "AgentTools": 1, - "Spaces": 2, - "Cleaner": 2, - "ResourcesHookContext": 1, - "Annotations": 2, - "SSHClient": 1, - "LeadershipService": 2, - "Pinger": 1, - "Subnets": 2, - "KeyUpdater": 1, - "MachineUndertaker": 1, - "DiskManager": 2, - "Client": 1, - "Reboot": 2, - "Application": 2, - "UnitAssigner": 1, - "CharmRevisionUpdater": 2, - "Cloud": 1, - "NotifyWatcher": 1, - }, - "2.0.1": { - "InstancePoller": 3, - "RelationUnitsWatcher": 1, - "FilesystemAttachmentsWatcher": 2, - "ApplicationRelationsWatcher": 1, - "MigrationStatusWatcher": 1, - "Agent": 2, - "LogForwarding": 1, - "Payloads": 1, - "HostKeyReporter": 1, - "Storage": 3, - "RetryStrategy": 1, - "ApplicationScaler": 1, - "Charms": 2, - "MetricsManager": 1, - "Firewaller": 3, - "StatusHistory": 2, - "MetricsDebug": 2, - "DiscoverSpaces": 2, - "ImageMetadata": 2, - "Block": 2, - "Controller": 3, - "AllModelWatcher": 2, - "MigrationMaster": 1, - "ModelManager": 2, - "StorageProvisioner": 3, - "Action": 2, - "ModelConfig": 1, - "Singular": 1, - "HighAvailability": 2, - "Machiner": 1, - "StringsWatcher": 1, - "Logger": 1, - "EntityWatcher": 2, - "Resumer": 2, - "Uniter": 4, - "PayloadsHookContext": 1, - "MigrationFlag": 1, - "MigrationTarget": 1, - "MachineActions": 1, - "MigrationMinion": 1, - "KeyManager": 1, - "Bundle": 1, - "VolumeAttachmentsWatcher": 2, - "Backups": 1, - "ProxyUpdater": 1, - "Provisioner": 3, - "MeterStatus": 1, - "AllWatcher": 1, - "Resources": 1, - "Undertaker": 1, - "MetricsAdder": 2, - "Deployer": 1, - "ImageManager": 2, - "LifeFlag": 1, - "Upgrader": 1, - "UserManager": 1, - "AgentTools": 1, - "Spaces": 2, - "Cleaner": 2, - "MachineManager": 2, - "ResourcesHookContext": 1, - "Annotations": 2, - "SSHClient": 2, - "LeadershipService": 2, - "Pinger": 1, - "Subnets": 2, - "KeyUpdater": 1, - "MachineUndertaker": 1, - "DiskManager": 2, - "Client": 1, - "Reboot": 2, - "Application": 3, - "UnitAssigner": 1, - "CharmRevisionUpdater": 2, - "Cloud": 1, - "NotifyWatcher": 1, - }, - "2.0.2": { - "InstancePoller": 3, - "RelationUnitsWatcher": 1, - "FilesystemAttachmentsWatcher": 2, - "ApplicationRelationsWatcher": 1, - "MigrationStatusWatcher": 1, - "Agent": 2, - "LogForwarding": 1, - "Payloads": 1, - "HostKeyReporter": 1, - "Storage": 3, - "RetryStrategy": 1, - "ApplicationScaler": 1, - "Charms": 2, - "MetricsManager": 1, - "Firewaller": 3, - "StatusHistory": 2, - "MetricsDebug": 2, - "DiscoverSpaces": 2, - "ImageMetadata": 2, - "Block": 2, - "Controller": 3, - "AllModelWatcher": 2, - "MigrationMaster": 1, - "ModelManager": 2, - "StorageProvisioner": 3, - "Action": 2, - "ModelConfig": 1, - "Singular": 1, - "HighAvailability": 2, - "Machiner": 1, - "StringsWatcher": 1, - "Logger": 1, - "EntityWatcher": 2, - "Resumer": 2, - "Uniter": 4, - "PayloadsHookContext": 1, - "MigrationFlag": 1, - "MigrationTarget": 1, - "MachineActions": 1, - "MigrationMinion": 1, - "KeyManager": 1, - "Bundle": 1, - "VolumeAttachmentsWatcher": 2, - "Backups": 1, - "ProxyUpdater": 1, - "Provisioner": 3, - "MeterStatus": 1, - "AllWatcher": 1, - "Resources": 1, - "Undertaker": 1, - "MetricsAdder": 2, - "Deployer": 1, - "ImageManager": 2, - "LifeFlag": 1, - "Upgrader": 1, - "UserManager": 1, - "AgentTools": 1, - "Spaces": 2, - "Cleaner": 2, - "MachineManager": 2, - "ResourcesHookContext": 1, - "Annotations": 2, - "SSHClient": 2, - "LeadershipService": 2, - "Pinger": 1, - "Subnets": 2, - "KeyUpdater": 1, - "MachineUndertaker": 1, - "DiskManager": 2, - "Client": 1, - "Reboot": 2, - "Application": 3, - "UnitAssigner": 1, - "CharmRevisionUpdater": 2, - "Cloud": 1, - "NotifyWatcher": 1, - }, - "2.0.3": { - "InstancePoller": 3, - "RelationUnitsWatcher": 1, - "FilesystemAttachmentsWatcher": 2, - "ApplicationRelationsWatcher": 1, - "MigrationStatusWatcher": 1, - "Agent": 2, - "LogForwarding": 1, - "Payloads": 1, - "HostKeyReporter": 1, - "Storage": 3, - "RetryStrategy": 1, - "ApplicationScaler": 1, - "Charms": 2, - "MetricsManager": 1, - "Firewaller": 3, - "StatusHistory": 2, - "MetricsDebug": 2, - "DiscoverSpaces": 2, - "ImageMetadata": 2, - "Block": 2, - "Controller": 3, - "AllModelWatcher": 2, - "MigrationMaster": 1, - "ModelManager": 2, - "StorageProvisioner": 3, - "Action": 2, - "ModelConfig": 1, - "Singular": 1, - "HighAvailability": 2, - "Machiner": 1, - "StringsWatcher": 1, - "Logger": 1, - "EntityWatcher": 2, - "Resumer": 2, - "Uniter": 4, - "PayloadsHookContext": 1, - "MigrationFlag": 1, - "MigrationTarget": 1, - "MachineActions": 1, - "MigrationMinion": 1, - "KeyManager": 1, - "Bundle": 1, - "VolumeAttachmentsWatcher": 2, - "Backups": 1, - "ProxyUpdater": 1, - "Provisioner": 3, - "MeterStatus": 1, - "AllWatcher": 1, - "Resources": 1, - "Undertaker": 1, - "MetricsAdder": 2, - "Deployer": 1, - "ImageManager": 2, - "LifeFlag": 1, - "Upgrader": 1, - "UserManager": 1, - "AgentTools": 1, - "Spaces": 2, - "Cleaner": 2, - "MachineManager": 2, - "ResourcesHookContext": 1, - "Annotations": 2, - "SSHClient": 2, - "LeadershipService": 2, - "Pinger": 1, - "Subnets": 2, - "KeyUpdater": 1, - "MachineUndertaker": 1, - "DiskManager": 2, - "Client": 1, - "Reboot": 2, - "Application": 3, - "UnitAssigner": 1, - "CharmRevisionUpdater": 2, - "Cloud": 1, - "NotifyWatcher": 1, - }, - "2.1.0": { - "InstancePoller": 3, - "RelationUnitsWatcher": 1, - "FilesystemAttachmentsWatcher": 2, - "Controller": 3, - "MigrationStatusWatcher": 1, - "Agent": 2, - "LogForwarding": 1, - "Payloads": 1, - "HostKeyReporter": 1, - "RemoteRelationsWatcher": 1, - "Storage": 3, - "RetryStrategy": 1, - "ApplicationScaler": 1, - "Charms": 2, - "MetricsManager": 1, - "Firewaller": 3, - "RemoteApplicationWatcher": 1, - "MetricsDebug": 2, - "DiscoverSpaces": 2, - "ImageMetadata": 2, - "Block": 2, - "MachineManager": 2, - "AllModelWatcher": 2, - "MigrationMaster": 1, - "ModelManager": 2, - "StorageProvisioner": 3, - "Action": 2, - "ModelConfig": 1, - "Singular": 1, - "HighAvailability": 2, - "Machiner": 1, - "StringsWatcher": 1, - "Logger": 1, - "EntityWatcher": 2, - "Resumer": 2, - "Uniter": 4, - "PayloadsHookContext": 1, - "MigrationTarget": 1, - "MachineActions": 1, - "MigrationMinion": 1, - "MigrationFlag": 1, - "Bundle": 1, - "VolumeAttachmentsWatcher": 2, - "Backups": 1, - "Upgrader": 1, - "ProxyUpdater": 1, - "Provisioner": 3, - "MeterStatus": 1, - "AllWatcher": 1, - "Resources": 1, - "Undertaker": 1, - "MetricsAdder": 2, - "Deployer": 1, - "ImageManager": 2, - "LifeFlag": 1, - "KeyManager": 1, - "UserManager": 1, - "AgentTools": 1, - "Spaces": 2, - "Cleaner": 2, - "ResourcesHookContext": 1, - "Annotations": 2, - "SSHClient": 2, - "LeadershipService": 2, - "Pinger": 1, - "Subnets": 2, - "KeyUpdater": 1, - "MachineUndertaker": 1, - "StatusHistory": 2, - "DiskManager": 2, - "Client": 1, - "Reboot": 2, - "Application": 3, - "UnitAssigner": 1, - "CharmRevisionUpdater": 2, - "Cloud": 1, - "NotifyWatcher": 1, - }, - "2.1.1": { - "InstancePoller": 3, - "RelationUnitsWatcher": 1, - "FilesystemAttachmentsWatcher": 2, - "Controller": 3, - "MigrationStatusWatcher": 1, - "Agent": 2, - "LogForwarding": 1, - "Payloads": 1, - "HostKeyReporter": 1, - "RemoteRelationsWatcher": 1, - "Storage": 3, - "RetryStrategy": 1, - "ApplicationScaler": 1, - "Charms": 2, - "MetricsManager": 1, - "Firewaller": 3, - "RemoteApplicationWatcher": 1, - "MetricsDebug": 2, - "DiscoverSpaces": 2, - "ImageMetadata": 2, - "Block": 2, - "MachineManager": 2, - "AllModelWatcher": 2, - "MigrationMaster": 1, - "ModelManager": 2, - "StorageProvisioner": 3, - "Action": 2, - "ModelConfig": 1, - "Singular": 1, - "HighAvailability": 2, - "Machiner": 1, - "StringsWatcher": 1, - "Logger": 1, - "EntityWatcher": 2, - "Resumer": 2, - "Uniter": 4, - "PayloadsHookContext": 1, - "MigrationTarget": 1, - "MachineActions": 1, - "MigrationMinion": 1, - "MigrationFlag": 1, - "Bundle": 1, - "VolumeAttachmentsWatcher": 2, - "Backups": 1, - "Upgrader": 1, - "ProxyUpdater": 1, - "Provisioner": 3, - "MeterStatus": 1, - "AllWatcher": 1, - "Resources": 1, - "Undertaker": 1, - "MetricsAdder": 2, - "Deployer": 1, - "ImageManager": 2, - "LifeFlag": 1, - "KeyManager": 1, - "UserManager": 1, - "AgentTools": 1, - "Spaces": 2, - "Cleaner": 2, - "ResourcesHookContext": 1, - "Annotations": 2, - "SSHClient": 2, - "LeadershipService": 2, - "Pinger": 1, - "Subnets": 2, - "KeyUpdater": 1, - "MachineUndertaker": 1, - "StatusHistory": 2, - "DiskManager": 2, - "Client": 1, - "Reboot": 2, - "Application": 3, - "UnitAssigner": 1, - "CharmRevisionUpdater": 2, - "Cloud": 1, - "NotifyWatcher": 1, - }, - "2.1.2": { - "InstancePoller": 3, - "RelationUnitsWatcher": 1, - "FilesystemAttachmentsWatcher": 2, - "Controller": 3, - "MigrationStatusWatcher": 1, - "Agent": 2, - "LogForwarding": 1, - "Payloads": 1, - "HostKeyReporter": 1, - "RemoteRelationsWatcher": 1, - "Storage": 3, - "RetryStrategy": 1, - "ApplicationScaler": 1, - "Charms": 2, - "MetricsManager": 1, - "Firewaller": 3, - "RemoteApplicationWatcher": 1, - "MetricsDebug": 2, - "DiscoverSpaces": 2, - "ImageMetadata": 2, - "Block": 2, - "MachineManager": 2, - "AllModelWatcher": 2, - "MigrationMaster": 1, - "ModelManager": 2, - "StorageProvisioner": 3, - "Action": 2, - "ModelConfig": 1, - "Singular": 1, - "HighAvailability": 2, - "Machiner": 1, - "StringsWatcher": 1, - "Logger": 1, - "EntityWatcher": 2, - "Resumer": 2, - "Uniter": 4, - "PayloadsHookContext": 1, - "MigrationTarget": 1, - "MachineActions": 1, - "MigrationMinion": 1, - "MigrationFlag": 1, - "Bundle": 1, - "VolumeAttachmentsWatcher": 2, - "Backups": 1, - "Upgrader": 1, - "ProxyUpdater": 1, - "Provisioner": 3, - "MeterStatus": 1, - "AllWatcher": 1, - "Resources": 1, - "Undertaker": 1, - "MetricsAdder": 2, - "Deployer": 1, - "ImageManager": 2, - "LifeFlag": 1, - "KeyManager": 1, - "UserManager": 1, - "AgentTools": 1, - "Spaces": 2, - "Cleaner": 2, - "ResourcesHookContext": 1, - "Annotations": 2, - "SSHClient": 2, - "LeadershipService": 2, - "Pinger": 1, - "Subnets": 2, - "KeyUpdater": 1, - "MachineUndertaker": 1, - "StatusHistory": 2, - "DiskManager": 2, - "Client": 1, - "Reboot": 2, - "Application": 3, - "UnitAssigner": 1, - "CharmRevisionUpdater": 2, - "Cloud": 1, - "NotifyWatcher": 1, - }, - "2.2-alpha1": { - "InstancePoller": 3, - "RelationUnitsWatcher": 1, - "FilesystemAttachmentsWatcher": 2, - "Controller": 3, - "MigrationStatusWatcher": 1, - "Agent": 2, - "LogForwarding": 1, - "Payloads": 1, - "HostKeyReporter": 1, - "Storage": 3, - "RetryStrategy": 1, - "ApplicationScaler": 1, - "Charms": 2, - "MetricsManager": 1, - "Firewaller": 3, - "StatusHistory": 2, - "MetricsDebug": 2, - "DiscoverSpaces": 2, - "ImageMetadata": 2, - "Block": 2, - "MachineManager": 3, - "AllModelWatcher": 2, - "MigrationMaster": 1, - "ModelManager": 2, - "StorageProvisioner": 3, - "Action": 2, - "ModelConfig": 1, - "Singular": 1, - "HighAvailability": 2, - "Machiner": 1, - "StringsWatcher": 1, - "Logger": 1, - "EntityWatcher": 2, - "Resumer": 2, - "Uniter": 4, - "PayloadsHookContext": 1, - "MigrationTarget": 1, - "MachineActions": 1, - "MigrationMinion": 1, - "MigrationFlag": 1, - "Bundle": 1, - "VolumeAttachmentsWatcher": 2, - "Backups": 1, - "Upgrader": 1, - "ProxyUpdater": 1, - "Provisioner": 3, - "MeterStatus": 1, - "AllWatcher": 1, - "Resources": 1, - "Undertaker": 1, - "MetricsAdder": 2, - "Deployer": 1, - "ImageManager": 2, - "LifeFlag": 1, - "KeyManager": 1, - "UserManager": 1, - "AgentTools": 1, - "Spaces": 2, - "Cleaner": 2, - "ResourcesHookContext": 1, - "Annotations": 2, - "SSHClient": 2, - "LeadershipService": 2, - "Pinger": 1, - "Subnets": 2, - "KeyUpdater": 1, - "MachineUndertaker": 1, - "DiskManager": 2, - "Client": 1, - "Reboot": 2, - "Application": 4, - "UnitAssigner": 1, - "CharmRevisionUpdater": 2, - "Cloud": 1, - "NotifyWatcher": 1, - }, - "2.2-beta1": { - "InstancePoller": 3, - "RelationUnitsWatcher": 1, - "FilesystemAttachmentsWatcher": 2, - "Controller": 3, - "MigrationStatusWatcher": 1, - "Agent": 2, - "LogForwarding": 1, - "Payloads": 1, - "HostKeyReporter": 1, - "Storage": 3, - "RetryStrategy": 1, - "ApplicationScaler": 1, - "Charms": 2, - "MetricsManager": 1, - "Firewaller": 3, - "StatusHistory": 2, - "MetricsDebug": 2, - "DiscoverSpaces": 2, - "ImageMetadata": 2, - "Block": 2, - "MachineManager": 3, - "AllModelWatcher": 2, - "MigrationMaster": 1, - "ModelManager": 2, - "StorageProvisioner": 3, - "Action": 2, - "ModelConfig": 1, - "Singular": 1, - "HighAvailability": 2, - "Machiner": 1, - "StringsWatcher": 1, - "Logger": 1, - "EntityWatcher": 2, - "Resumer": 2, - "Uniter": 5, - "PayloadsHookContext": 1, - "MigrationTarget": 1, - "MachineActions": 1, - "MigrationMinion": 1, - "MigrationFlag": 1, - "Bundle": 1, - "VolumeAttachmentsWatcher": 2, - "Backups": 1, - "Upgrader": 1, - "ProxyUpdater": 1, - "Provisioner": 3, - "MeterStatus": 1, - "AllWatcher": 1, - "Resources": 1, - "Undertaker": 1, - "MetricsAdder": 2, - "Deployer": 1, - "ImageManager": 2, - "LifeFlag": 1, - "KeyManager": 1, - "UserManager": 1, - "AgentTools": 1, - "Spaces": 2, - "Cleaner": 2, - "ResourcesHookContext": 1, - "Annotations": 2, - "SSHClient": 2, - "LeadershipService": 2, - "Pinger": 1, - "Subnets": 2, - "KeyUpdater": 1, - "MachineUndertaker": 1, - "DiskManager": 2, - "Client": 1, - "Reboot": 2, - "Application": 4, - "UnitAssigner": 1, - "CharmRevisionUpdater": 2, - "Cloud": 1, - "NotifyWatcher": 1, - }, - "2.2-beta2": { - "InstancePoller": 3, - "RelationUnitsWatcher": 1, - "FilesystemAttachmentsWatcher": 2, - "Controller": 3, - "MigrationStatusWatcher": 1, - "Agent": 2, - "LogForwarding": 1, - "Payloads": 1, - "HostKeyReporter": 1, - "Storage": 3, - "RetryStrategy": 1, - "ApplicationScaler": 1, - "Charms": 2, - "MetricsManager": 1, - "Firewaller": 3, - "StatusHistory": 2, - "MetricsDebug": 2, - "DiscoverSpaces": 2, - "ImageMetadata": 2, - "Block": 2, - "MachineManager": 3, - "AllModelWatcher": 2, - "MigrationMaster": 1, - "ModelManager": 2, - "StorageProvisioner": 3, - "Action": 2, - "ModelConfig": 1, - "Singular": 1, - "HighAvailability": 2, - "Machiner": 1, - "StringsWatcher": 1, - "Logger": 1, - "EntityWatcher": 2, - "Resumer": 2, - "Uniter": 5, - "PayloadsHookContext": 1, - "MigrationTarget": 1, - "MachineActions": 1, - "MigrationMinion": 1, - "MigrationFlag": 1, - "Bundle": 1, - "VolumeAttachmentsWatcher": 2, - "Backups": 1, - "Upgrader": 1, - "ProxyUpdater": 1, - "Provisioner": 3, - "MeterStatus": 1, - "AllWatcher": 1, - "Resources": 1, - "Undertaker": 1, - "MetricsAdder": 2, - "Deployer": 1, - "ImageManager": 2, - "LifeFlag": 1, - "KeyManager": 1, - "UserManager": 1, - "AgentTools": 1, - "Spaces": 2, - "Cleaner": 2, - "ResourcesHookContext": 1, - "Annotations": 2, - "SSHClient": 2, - "LeadershipService": 2, - "Pinger": 1, - "Subnets": 2, - "KeyUpdater": 1, - "MachineUndertaker": 1, - "DiskManager": 2, - "Client": 1, - "Reboot": 2, - "Application": 4, - "UnitAssigner": 1, - "CharmRevisionUpdater": 2, - "Cloud": 1, - "NotifyWatcher": 1, - }, - "latest": { - "InstancePoller": 3, - "RelationUnitsWatcher": 1, - "FilesystemAttachmentsWatcher": 2, - "Controller": 3, - "MigrationStatusWatcher": 1, - "Agent": 2, - "LogForwarding": 1, - "Payloads": 1, - "HostKeyReporter": 1, - "Storage": 3, - "RetryStrategy": 1, - "ApplicationScaler": 1, - "Charms": 2, - "MetricsManager": 1, - "Firewaller": 3, - "StatusHistory": 2, - "MetricsDebug": 2, - "DiscoverSpaces": 2, - "ImageMetadata": 2, - "Block": 2, - "MachineManager": 3, - "AllModelWatcher": 2, - "MigrationMaster": 1, - "ModelManager": 2, - "StorageProvisioner": 3, - "Action": 2, - "ModelConfig": 1, - "Singular": 1, - "HighAvailability": 2, - "Machiner": 1, - "StringsWatcher": 1, - "Logger": 1, - "EntityWatcher": 2, - "Resumer": 2, - "Uniter": 5, - "PayloadsHookContext": 1, - "MigrationTarget": 1, - "MachineActions": 1, - "MigrationMinion": 1, - "MigrationFlag": 1, - "Bundle": 1, - "VolumeAttachmentsWatcher": 2, - "Backups": 1, - "Upgrader": 1, - "ProxyUpdater": 1, - "Provisioner": 3, - "MeterStatus": 1, - "AllWatcher": 1, - "Resources": 1, - "Undertaker": 1, - "MetricsAdder": 2, - "Deployer": 1, - "ImageManager": 2, - "LifeFlag": 1, - "KeyManager": 1, - "UserManager": 1, - "AgentTools": 1, - "Spaces": 2, - "Cleaner": 2, - "ResourcesHookContext": 1, - "Annotations": 2, - "SSHClient": 2, - "LeadershipService": 2, - "Pinger": 1, - "Subnets": 2, - "KeyUpdater": 1, - "MachineUndertaker": 1, - "DiskManager": 2, - "Client": 1, - "Reboot": 2, - "Application": 4, - "UnitAssigner": 1, - "CharmRevisionUpdater": 2, - "Cloud": 1, - "NotifyWatcher": 1, - }, -}