From bdd55d989da4412f1fa3dcb2937b94e4a0111820 Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Wed, 19 Feb 2025 20:15:43 +0000 Subject: [PATCH] typing: Indicate tuples to be extended Change-Id: Ie5907de8d60f2f39e98f6a88227cebb2e2ff565c Signed-off-by: Stephen Finucane --- openstackclient/common/availability_zone.py | 7 ++---- openstackclient/common/extension.py | 12 ++-------- openstackclient/common/quota.py | 16 ++++++------- openstackclient/compute/v2/aggregate.py | 4 ++-- openstackclient/compute/v2/flavor.py | 4 ++-- openstackclient/compute/v2/hypervisor.py | 10 ++++++-- openstackclient/compute/v2/keypair.py | 2 +- openstackclient/compute/v2/server.py | 17 ++++++++----- openstackclient/compute/v2/server_event.py | 4 ++-- openstackclient/compute/v2/server_group.py | 4 ++-- .../compute/v2/server_migration.py | 4 ++-- openstackclient/compute/v2/server_volume.py | 4 ++-- openstackclient/compute/v2/service.py | 4 ++-- openstackclient/identity/v2_0/endpoint.py | 15 ++++++------ openstackclient/identity/v2_0/project.py | 5 ++-- openstackclient/identity/v2_0/service.py | 5 ++-- openstackclient/identity/v2_0/user.py | 20 ++++------------ openstackclient/identity/v3/endpoint.py | 2 +- openstackclient/identity/v3/group.py | 5 ++-- openstackclient/identity/v3/policy.py | 9 ++++--- openstackclient/identity/v3/project.py | 5 ++-- openstackclient/identity/v3/role.py | 2 +- openstackclient/identity/v3/service.py | 9 ++++--- openstackclient/image/v1/image.py | 4 ++-- openstackclient/image/v2/image.py | 10 ++++---- openstackclient/network/v2/floating_ip.py | 12 +++++----- openstackclient/network/v2/network.py | 4 ++-- openstackclient/network/v2/network_agent.py | 4 ++-- openstackclient/network/v2/network_rbac.py | 4 ++-- openstackclient/network/v2/network_segment.py | 8 +++---- .../network/v2/network_segment_range.py | 12 +++++----- openstackclient/network/v2/network_trunk.py | 16 +++++++++---- openstackclient/network/v2/router.py | 24 +++++++++---------- openstackclient/network/v2/security_group.py | 14 ++++------- .../network/v2/security_group_rule.py | 14 +++++------ openstackclient/network/v2/subnet.py | 4 ++-- openstackclient/network/v2/subnet_pool.py | 4 ++-- openstackclient/object/v1/container.py | 5 ++-- openstackclient/object/v1/object.py | 11 ++------- openstackclient/volume/v1/volume.py | 4 ++-- openstackclient/volume/v2/volume_backup.py | 10 ++++---- .../volume/v3/block_storage_cluster.py | 6 ++--- openstackclient/volume/v3/volume_backup.py | 10 ++++---- 43 files changed, 164 insertions(+), 185 deletions(-) diff --git a/openstackclient/common/availability_zone.py b/openstackclient/common/availability_zone.py index acc661a8d8..e6644ffe2d 100644 --- a/openstackclient/common/availability_zone.py +++ b/openstackclient/common/availability_zone.py @@ -172,17 +172,14 @@ class ListAvailabilityZone(command.Lister): return result def take_action(self, parsed_args): + columns: tuple[str, ...] = ('Zone Name', 'Zone Status') if parsed_args.long: - columns = ( - 'Zone Name', - 'Zone Status', + columns += ( 'Zone Resource', 'Host Name', 'Service Name', 'Service Status', ) - else: - columns = ('Zone Name', 'Zone Status') # Show everything by default. show_all = ( diff --git a/openstackclient/common/extension.py b/openstackclient/common/extension.py index ad7b1a9341..00f04c7501 100644 --- a/openstackclient/common/extension.py +++ b/openstackclient/common/extension.py @@ -73,17 +73,9 @@ class ListExtension(command.Lister): return parser def take_action(self, parsed_args): + columns: tuple[str, ...] = ('Name', 'Alias', 'Description') if parsed_args.long: - columns = ( - 'Name', - 'Alias', - 'Description', - 'Namespace', - 'Updated At', - 'Links', - ) - else: - columns = ('Name', 'Alias', 'Description') + columns += ('Namespace', 'Updated At', 'Links') data = [] diff --git a/openstackclient/common/quota.py b/openstackclient/common/quota.py index 6faae8b772..1ac50f80d8 100644 --- a/openstackclient/common/quota.py +++ b/openstackclient/common/quota.py @@ -290,7 +290,7 @@ class ListQuota(command.Lister): if default_result != project_result: result += project_result - columns = ( + columns: tuple[str, ...] = ( 'id', 'cores', 'injected_files', @@ -303,7 +303,7 @@ class ListQuota(command.Lister): 'server_groups', 'server_group_members', ) - column_headers = ( + column_headers: tuple[str, ...] = ( 'Project ID', 'Cores', 'Injected Files', @@ -352,7 +352,7 @@ class ListQuota(command.Lister): if default_result != project_result: result += project_result - columns = ( + columns: tuple[str, ...] = ( 'id', 'backups', 'backup_gigabytes', @@ -361,7 +361,7 @@ class ListQuota(command.Lister): 'snapshots', 'volumes', ) - column_headers = ( + column_headers: tuple[str, ...] = ( 'Project ID', 'Backups', 'Backup Gigabytes', @@ -407,7 +407,7 @@ class ListQuota(command.Lister): if default_result != project_result: result += project_result - columns = ( + columns: tuple[str, ...] = ( 'id', 'floating_ips', 'networks', @@ -419,7 +419,7 @@ class ListQuota(command.Lister): 'subnets', 'subnet_pools', ) - column_headers = ( + column_headers: tuple[str, ...] = ( 'Project ID', 'Floating IPs', 'Networks', @@ -823,11 +823,11 @@ and ``server-group-members`` output for a given quota class.""" if k not in ('usage', 'reservation') ] - columns = ( + columns: tuple[str, ...] = ( 'resource', 'limit', ) - column_headers = ( + column_headers: tuple[str, ...] = ( 'Resource', 'Limit', ) diff --git a/openstackclient/compute/v2/aggregate.py b/openstackclient/compute/v2/aggregate.py index 167b2e82c9..293e323da9 100644 --- a/openstackclient/compute/v2/aggregate.py +++ b/openstackclient/compute/v2/aggregate.py @@ -194,8 +194,8 @@ class ListAggregate(command.Lister): aggregates = list(compute_client.aggregates()) if sdk_utils.supports_microversion(compute_client, '2.41'): - column_headers = ("ID", "UUID") - columns = ("id", "uuid") + column_headers: tuple[str, ...] = ("ID", "UUID") + columns: tuple[str, ...] = ("id", "uuid") else: column_headers = ("ID",) columns = ("id",) diff --git a/openstackclient/compute/v2/flavor.py b/openstackclient/compute/v2/flavor.py index 03092417ca..fe6016148c 100644 --- a/openstackclient/compute/v2/flavor.py +++ b/openstackclient/compute/v2/flavor.py @@ -329,7 +329,7 @@ class ListFlavor(command.Lister): if parsed_args.long and not f.extra_specs: compute_client.fetch_flavor_extra_specs(f) - columns = ( + columns: tuple[str, ...] = ( "id", "name", "ram", @@ -345,7 +345,7 @@ class ListFlavor(command.Lister): "extra_specs", ) - column_headers = ( + column_headers: tuple[str, ...] = ( "ID", "Name", "RAM", diff --git a/openstackclient/compute/v2/hypervisor.py b/openstackclient/compute/v2/hypervisor.py index 8a82a30d98..ab81879b67 100644 --- a/openstackclient/compute/v2/hypervisor.py +++ b/openstackclient/compute/v2/hypervisor.py @@ -119,14 +119,20 @@ class ListHypervisor(command.Lister): if parsed_args.matching: list_opts['hypervisor_hostname_pattern'] = parsed_args.matching - column_headers = ( + column_headers: tuple[str, ...] = ( "ID", "Hypervisor Hostname", "Hypervisor Type", "Host IP", "State", ) - columns = ('id', 'name', 'hypervisor_type', 'host_ip', 'state') + columns: tuple[str, ...] = ( + 'id', + 'name', + 'hypervisor_type', + 'host_ip', + 'state', + ) if parsed_args.long: if not sdk_utils.supports_microversion(compute_client, '2.88'): diff --git a/openstackclient/compute/v2/keypair.py b/openstackclient/compute/v2/keypair.py index 377eb903c0..85c340d582 100644 --- a/openstackclient/compute/v2/keypair.py +++ b/openstackclient/compute/v2/keypair.py @@ -372,7 +372,7 @@ class ListKeypair(command.Lister): else: data = compute_client.keypairs(**kwargs) - columns = ("Name", "Fingerprint") + columns: tuple[str, ...] = ("Name", "Fingerprint") if sdk_utils.supports_microversion(compute_client, '2.2'): columns += ("Type",) diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py index ae816e6fe2..cdb0f96763 100644 --- a/openstackclient/compute/v2/server.py +++ b/openstackclient/compute/v2/server.py @@ -430,7 +430,7 @@ class AddFixedIP(command.ShowOne): interface = compute_client.create_server_interface(server.id, **kwargs) - columns = ( + columns: tuple[str, ...] = ( 'port_id', 'server_id', 'net_id', @@ -438,7 +438,7 @@ class AddFixedIP(command.ShowOne): 'port_state', 'fixed_ips', ) - column_headers = ( + column_headers: tuple[str, ...] = ( 'Port ID', 'Server ID', 'Network ID', @@ -842,8 +842,13 @@ with status ``SHELVED`` or ``SHELVED_OFFLOADED``.""" **kwargs, ) - columns = ('id', 'server id', 'volume id', 'device') - column_headers = ('ID', 'Server ID', 'Volume ID', 'Device') + columns: tuple[str, ...] = ('id', 'server id', 'volume id', 'device') + column_headers: tuple[str, ...] = ( + 'ID', + 'Server ID', + 'Volume ID', + 'Device', + ) if sdk_utils.supports_microversion(compute_client, '2.49'): columns += ('tag',) column_headers += ('Tag',) @@ -2802,12 +2807,12 @@ class ListServer(command.Lister): msg % search_opts['changes-since'] ) - columns = ( + columns: tuple[str, ...] = ( 'id', 'name', 'status', ) - column_headers = ( + column_headers: tuple[str, ...] = ( 'ID', 'Name', 'Status', diff --git a/openstackclient/compute/v2/server_event.py b/openstackclient/compute/v2/server_event.py index 1fc4672103..d48283f0ea 100644 --- a/openstackclient/compute/v2/server_event.py +++ b/openstackclient/compute/v2/server_event.py @@ -220,13 +220,13 @@ class ListServerEvent(command.Lister): data = compute_client.server_actions(server_id, **kwargs) - columns = ( + columns: tuple[str, ...] = ( 'request_id', 'server_id', 'action', 'start_time', ) - column_headers = ( + column_headers: tuple[str, ...] = ( 'Request ID', 'Server ID', 'Action', diff --git a/openstackclient/compute/v2/server_group.py b/openstackclient/compute/v2/server_group.py index c4fe666e1b..4a157faa22 100644 --- a/openstackclient/compute/v2/server_group.py +++ b/openstackclient/compute/v2/server_group.py @@ -216,12 +216,12 @@ class ListServerGroup(command.Lister): if sdk_utils.supports_microversion(compute_client, '2.64'): policy_key = 'Policy' - columns = ( + columns: tuple[str, ...] = ( 'id', 'name', policy_key.lower(), ) - column_headers = ( + column_headers: tuple[str, ...] = ( 'ID', 'Name', policy_key, diff --git a/openstackclient/compute/v2/server_migration.py b/openstackclient/compute/v2/server_migration.py index 75073a0c33..a0ec365a64 100644 --- a/openstackclient/compute/v2/server_migration.py +++ b/openstackclient/compute/v2/server_migration.py @@ -333,7 +333,7 @@ class ShowMigration(command.ShowOne): ignore_missing=False, ) - column_headers = ( + column_headers: tuple[str, ...] = ( 'ID', 'Server UUID', 'Status', @@ -352,7 +352,7 @@ class ShowMigration(command.ShowOne): 'Updated At', ) - columns = ( + columns: tuple[str, ...] = ( 'id', 'server_id', 'status', diff --git a/openstackclient/compute/v2/server_volume.py b/openstackclient/compute/v2/server_volume.py index b4322c0b1e..fe74ec7d16 100644 --- a/openstackclient/compute/v2/server_volume.py +++ b/openstackclient/compute/v2/server_volume.py @@ -42,8 +42,8 @@ class ListServerVolume(command.Lister): ) volumes = compute_client.volume_attachments(server) - columns = () - column_headers = () + columns: tuple[str, ...] = () + column_headers: tuple[str, ...] = () if not sdk_utils.supports_microversion(compute_client, '2.89'): columns += ('id',) diff --git a/openstackclient/compute/v2/service.py b/openstackclient/compute/v2/service.py index b0d77fbade..5ba2a3443d 100644 --- a/openstackclient/compute/v2/service.py +++ b/openstackclient/compute/v2/service.py @@ -109,7 +109,7 @@ deployment.""" def take_action(self, parsed_args): compute_client = self.app.client_manager.sdk_connection.compute - columns = ( + columns: tuple[str, ...] = ( "id", "binary", "host", @@ -118,7 +118,7 @@ deployment.""" "state", "updated_at", ) - column_headers = ( + column_headers: tuple[str, ...] = ( "ID", "Binary", "Host", diff --git a/openstackclient/identity/v2_0/endpoint.py b/openstackclient/identity/v2_0/endpoint.py index 94edc4cbe6..db8efede11 100644 --- a/openstackclient/identity/v2_0/endpoint.py +++ b/openstackclient/identity/v2_0/endpoint.py @@ -133,18 +133,19 @@ class ListEndpoint(command.Lister): def take_action(self, parsed_args): identity_client = self.app.client_manager.identity + + columns: tuple[str, ...] = ( + 'ID', + 'Region', + 'Service Name', + 'Service Type', + ) if parsed_args.long: - columns = ( - 'ID', - 'Region', - 'Service Name', - 'Service Type', + columns += ( 'PublicURL', 'AdminURL', 'InternalURL', ) - else: - columns = ('ID', 'Region', 'Service Name', 'Service Type') data = identity_client.endpoints.list() for ep in data: diff --git a/openstackclient/identity/v2_0/project.py b/openstackclient/identity/v2_0/project.py index 1acaa29e58..a0c3c1e4d3 100644 --- a/openstackclient/identity/v2_0/project.py +++ b/openstackclient/identity/v2_0/project.py @@ -170,10 +170,9 @@ class ListProject(command.Lister): return parser def take_action(self, parsed_args): + columns: tuple[str, ...] = ('ID', 'Name') if parsed_args.long: - columns = ('ID', 'Name', 'Description', 'Enabled') - else: - columns = ('ID', 'Name') + columns += ('Description', 'Enabled') data = self.app.client_manager.identity.tenants.list() if parsed_args.sort: data = utils.sort_items(data, parsed_args.sort) diff --git a/openstackclient/identity/v2_0/service.py b/openstackclient/identity/v2_0/service.py index 465f002b1f..978e926f3b 100644 --- a/openstackclient/identity/v2_0/service.py +++ b/openstackclient/identity/v2_0/service.py @@ -121,10 +121,9 @@ class ListService(command.Lister): return parser def take_action(self, parsed_args): + columns: tuple[str, ...] = ('ID', 'Name', 'Type') if parsed_args.long: - columns = ('ID', 'Name', 'Type', 'Description') - else: - columns = ('ID', 'Name', 'Type') + columns += ('Description',) data = self.app.client_manager.identity.services.list() return ( columns, diff --git a/openstackclient/identity/v2_0/user.py b/openstackclient/identity/v2_0/user.py index b48c95e27d..2262d264d4 100644 --- a/openstackclient/identity/v2_0/user.py +++ b/openstackclient/identity/v2_0/user.py @@ -230,21 +230,11 @@ class ListUser(command.Lister): ) project = project.id + columns: tuple[str, ...] = ('id', 'name') + column_headers: tuple[str, ...] = ('ID', 'Name') if parsed_args.long: - columns = ( - 'ID', - 'Name', - 'tenantId', - 'Email', - 'Enabled', - ) - column_headers = ( - 'ID', - 'Name', - 'Project', - 'Email', - 'Enabled', - ) + columns += ('tenantId', 'email', 'enabled') + column_headers += ('Project', 'Email', 'Enabled') # Cache the project list project_cache = {} try: @@ -256,8 +246,6 @@ class ListUser(command.Lister): formatters['tenantId'] = functools.partial( ProjectColumn, project_cache=project_cache ) - else: - columns = column_headers = ('ID', 'Name') data = identity_client.users.list(tenant_id=project) if parsed_args.project: diff --git a/openstackclient/identity/v3/endpoint.py b/openstackclient/identity/v3/endpoint.py index 72dd515704..4b79fdaa0f 100644 --- a/openstackclient/identity/v3/endpoint.py +++ b/openstackclient/identity/v3/endpoint.py @@ -224,7 +224,7 @@ class ListEndpoint(command.Lister): ) if endpoint: - columns = ('ID', 'Name') + columns: tuple[str, ...] = ('ID', 'Name') data = identity_client.endpoint_filter.list_projects_for_endpoint( endpoint=endpoint.id ) diff --git a/openstackclient/identity/v3/group.py b/openstackclient/identity/v3/group.py index 62a5c22391..d0112064b1 100644 --- a/openstackclient/identity/v3/group.py +++ b/openstackclient/identity/v3/group.py @@ -278,10 +278,9 @@ class ListGroup(command.Lister): user = None # List groups + columns: tuple[str, ...] = ('ID', 'Name') if parsed_args.long: - columns = ('ID', 'Name', 'Domain ID', 'Description') - else: - columns = ('ID', 'Name') + columns += ('Domain ID', 'Description') data = identity_client.groups.list( domain=domain, user=user, diff --git a/openstackclient/identity/v3/policy.py b/openstackclient/identity/v3/policy.py index a7e2a07d9e..d5b8fec6be 100644 --- a/openstackclient/identity/v3/policy.py +++ b/openstackclient/identity/v3/policy.py @@ -113,12 +113,11 @@ class ListPolicy(command.Lister): return parser def take_action(self, parsed_args): + columns: tuple[str, ...] = ('ID', 'Type') + column_headers: tuple[str, ...] = columns if parsed_args.long: - columns = ('ID', 'Type', 'Blob') - column_headers = ('ID', 'Type', 'Rules') - else: - columns = ('ID', 'Type') - column_headers = columns + columns += ('Blob',) + column_headers += ('Rules',) data = self.app.client_manager.identity.policies.list() return ( column_headers, diff --git a/openstackclient/identity/v3/project.py b/openstackclient/identity/v3/project.py index 250fde4c5d..a057fcbd38 100644 --- a/openstackclient/identity/v3/project.py +++ b/openstackclient/identity/v3/project.py @@ -245,10 +245,9 @@ class ListProject(command.Lister): def take_action(self, parsed_args): identity_client = self.app.client_manager.identity + columns: tuple[str, ...] = ('ID', 'Name') if parsed_args.long: - columns = ('ID', 'Name', 'Domain ID', 'Description', 'Enabled') - else: - columns = ('ID', 'Name') + columns += ('Domain ID', 'Description', 'Enabled') kwargs = {} domain_id = None diff --git a/openstackclient/identity/v3/role.py b/openstackclient/identity/v3/role.py index 4364931b6f..c7bb5b054a 100644 --- a/openstackclient/identity/v3/role.py +++ b/openstackclient/identity/v3/role.py @@ -428,7 +428,7 @@ class ListRole(command.Lister): domain = identity_client.find_domain( name_or_id=parsed_args.domain, ) - columns = ('ID', 'Name', 'Domain') + columns: tuple[str, ...] = ('ID', 'Name', 'Domain') data = identity_client.roles(domain_id=domain.id) else: columns = ('ID', 'Name') diff --git a/openstackclient/identity/v3/service.py b/openstackclient/identity/v3/service.py index dd1bfa473d..e8f483266e 100644 --- a/openstackclient/identity/v3/service.py +++ b/openstackclient/identity/v3/service.py @@ -158,12 +158,11 @@ class ListService(command.Lister): def take_action(self, parsed_args): identity_client = self.app.client_manager.sdk_connection.identity + columns: tuple[str, ...] = ('id', 'name', 'type') + column_headers: tuple[str, ...] = ('ID', 'Name', 'Type') if parsed_args.long: - columns = ('id', 'name', 'type', 'description', 'is_enabled') - column_headers = ('ID', 'Name', 'Type', 'Description', 'Enabled') - else: - columns = ('id', 'name', 'type') - column_headers = ('ID', 'Name', 'Type') + columns += ('description', 'is_enabled') + column_headers += ('Description', 'Enabled') data = identity_client.services() diff --git a/openstackclient/image/v1/image.py b/openstackclient/image/v1/image.py index 2391c1639b..fba656cf6f 100644 --- a/openstackclient/image/v1/image.py +++ b/openstackclient/image/v1/image.py @@ -467,7 +467,7 @@ class ListImage(command.Lister): kwargs['is_private'] = True if parsed_args.long: - columns = ( + columns: tuple[str, ...] = ( 'ID', 'Name', 'Disk Format', @@ -480,7 +480,7 @@ class ListImage(command.Lister): 'owner_id', 'properties', ) - column_headers = ( + column_headers: tuple[str, ...] = ( 'ID', 'Name', 'Disk Format', diff --git a/openstackclient/image/v2/image.py b/openstackclient/image/v2/image.py index ad1637d700..dca1a8f260 100644 --- a/openstackclient/image/v2/image.py +++ b/openstackclient/image/v2/image.py @@ -881,7 +881,7 @@ class ListImage(command.Lister): if parsed_args.is_hidden: kwargs['is_hidden'] = parsed_args.is_hidden if parsed_args.long: - columns = ( + columns: tuple[str, ...] = ( 'ID', 'Name', 'Disk Format', @@ -894,7 +894,7 @@ class ListImage(command.Lister): 'owner_id', 'tags', ) - column_headers = ( + column_headers: tuple[str, ...] = ( 'ID', 'Name', 'Disk Format', @@ -956,7 +956,7 @@ class ListImageProjects(command.Lister): def take_action(self, parsed_args): image_client = self.app.client_manager.image - columns = ("Image ID", "Member ID", "Status") + columns: tuple[str, ...] = ("Image ID", "Member ID", "Status") image_id = image_client.find_image( parsed_args.image, @@ -1862,8 +1862,8 @@ class StoresInfo(command.Lister): def take_action(self, parsed_args): image_client = self.app.client_manager.image try: - columns = ("id", "description", "is_default") - column_headers = ("ID", "Description", "Default") + columns: tuple[str, ...] = ("id", "description", "is_default") + column_headers: tuple[str, ...] = ("ID", "Description", "Default") if parsed_args.detail: columns += ("properties",) column_headers += ("Properties",) diff --git a/openstackclient/network/v2/floating_ip.py b/openstackclient/network/v2/floating_ip.py index d190d14b18..266ff8fa33 100644 --- a/openstackclient/network/v2/floating_ip.py +++ b/openstackclient/network/v2/floating_ip.py @@ -318,7 +318,7 @@ class ListFloatingIP(common.NetworkAndComputeLister): network_client = self.app.client_manager.network identity_client = self.app.client_manager.identity - columns = ( + columns: tuple[str, ...] = ( 'id', 'floating_ip_address', 'fixed_ip_address', @@ -326,7 +326,7 @@ class ListFloatingIP(common.NetworkAndComputeLister): 'floating_network_id', 'project_id', ) - headers = ( + headers: tuple[str, ...] = ( 'ID', 'Floating IP Address', 'Fixed IP Address', @@ -335,7 +335,7 @@ class ListFloatingIP(common.NetworkAndComputeLister): 'Project', ) if parsed_args.long: - columns = columns + ( + columns += ( 'router_id', 'status', 'description', @@ -343,7 +343,7 @@ class ListFloatingIP(common.NetworkAndComputeLister): 'dns_name', 'dns_domain', ) - headers = headers + ( + headers += ( 'Router', 'Status', 'Description', @@ -403,14 +403,14 @@ class ListFloatingIP(common.NetworkAndComputeLister): ) def take_action_compute(self, client, parsed_args): - columns = ( + columns: tuple[str, ...] = ( 'ID', 'IP', 'Fixed IP', 'Instance ID', 'Pool', ) - headers = ( + headers: tuple[str, ...] = ( 'ID', 'Floating IP Address', 'Fixed IP Address', diff --git a/openstackclient/network/v2/network.py b/openstackclient/network/v2/network.py index 0db94f867e..dbc665c97c 100644 --- a/openstackclient/network/v2/network.py +++ b/openstackclient/network/v2/network.py @@ -573,7 +573,7 @@ class ListNetwork(common.NetworkAndComputeLister): def take_action_network(self, client, parsed_args): identity_client = self.app.client_manager.identity if parsed_args.long: - columns = ( + columns: tuple[str, ...] = ( 'id', 'name', 'status', @@ -586,7 +586,7 @@ class ListNetwork(common.NetworkAndComputeLister): 'availability_zones', 'tags', ) - column_headers = ( + column_headers: tuple[str, ...] = ( 'ID', 'Name', 'Status', diff --git a/openstackclient/network/v2/network_agent.py b/openstackclient/network/v2/network_agent.py index 1555cb6540..35b0fab664 100644 --- a/openstackclient/network/v2/network_agent.py +++ b/openstackclient/network/v2/network_agent.py @@ -223,7 +223,7 @@ class ListNetworkAgent(command.Lister): def take_action(self, parsed_args): client = self.app.client_manager.network - columns = ( + columns: tuple[str, ...] = ( 'id', 'agent_type', 'host', @@ -232,7 +232,7 @@ class ListNetworkAgent(command.Lister): 'is_admin_state_up', 'binary', ) - column_headers = ( + column_headers: tuple[str, ...] = ( 'ID', 'Agent Type', 'Host', diff --git a/openstackclient/network/v2/network_rbac.py b/openstackclient/network/v2/network_rbac.py index 0cf7560468..0df74375d8 100644 --- a/openstackclient/network/v2/network_rbac.py +++ b/openstackclient/network/v2/network_rbac.py @@ -265,12 +265,12 @@ class ListNetworkRBAC(command.Lister): def take_action(self, parsed_args): client = self.app.client_manager.network - columns = ( + columns: tuple[str, ...] = ( 'id', 'object_type', 'object_id', ) - column_headers = ( + column_headers: tuple[str, ...] = ( 'ID', 'Object Type', 'Object ID', diff --git a/openstackclient/network/v2/network_segment.py b/openstackclient/network/v2/network_segment.py index 4ec2a2724a..fbccba00ed 100644 --- a/openstackclient/network/v2/network_segment.py +++ b/openstackclient/network/v2/network_segment.py @@ -178,14 +178,14 @@ class ListNetworkSegment(command.Lister): filters = {'network_id': _network.id} data = network_client.segments(**filters) - headers = ( + headers: tuple[str, ...] = ( 'ID', 'Name', 'Network', 'Network Type', 'Segment', ) - columns = ( + columns: tuple[str, ...] = ( 'id', 'name', 'network_id', @@ -193,8 +193,8 @@ class ListNetworkSegment(command.Lister): 'segmentation_id', ) if parsed_args.long: - headers = headers + ('Physical Network',) - columns = columns + ('physical_network',) + headers += ('Physical Network',) + columns += ('physical_network',) return ( headers, diff --git a/openstackclient/network/v2/network_segment_range.py b/openstackclient/network/v2/network_segment_range.py index f24e49da9d..48a8ca1a85 100644 --- a/openstackclient/network/v2/network_segment_range.py +++ b/openstackclient/network/v2/network_segment_range.py @@ -42,9 +42,9 @@ def _get_columns(item): def _get_ranges(item): item = sorted([int(i) for i in item]) for a, b in itertools.groupby(enumerate(item), lambda xy: xy[1] - xy[0]): - b = list(b) + c = list(b) yield ( - f"{b[0][1]}-{b[-1][1]}" if b[0][1] != b[-1][1] else str(b[0][1]) + f"{c[0][1]}-{c[-1][1]}" if c[0][1] != c[-1][1] else str(c[0][1]) ) @@ -354,7 +354,7 @@ class ListNetworkSegmentRange(command.Lister): filters = {} data = network_client.network_segment_ranges(**filters) - headers = ( + headers: tuple[str, ...] = ( 'ID', 'Name', 'Default', @@ -365,7 +365,7 @@ class ListNetworkSegmentRange(command.Lister): 'Minimum ID', 'Maximum ID', ) - columns = ( + columns: tuple[str, ...] = ( 'id', 'name', 'default', @@ -387,11 +387,11 @@ class ListNetworkSegmentRange(command.Lister): # should be listed in output. parsed_args.long = True if parsed_args.long: - headers = headers + ( + headers += ( 'Used', 'Available', ) - columns = columns + ( + columns += ( 'used', 'available', ) diff --git a/openstackclient/network/v2/network_trunk.py b/openstackclient/network/v2/network_trunk.py index 5829be3602..740c3f21df 100644 --- a/openstackclient/network/v2/network_trunk.py +++ b/openstackclient/network/v2/network_trunk.py @@ -151,8 +151,8 @@ class ListNetworkTrunk(command.Lister): def take_action(self, parsed_args): client = self.app.client_manager.network data = client.trunks() - headers = ('ID', 'Name', 'Parent Port', 'Description') - columns = ('id', 'name', 'port_id', 'description') + headers: tuple[str, ...] = ('ID', 'Name', 'Parent Port', 'Description') + columns: tuple[str, ...] = ('id', 'name', 'port_id', 'description') if parsed_args.long: headers += ( 'Status', @@ -277,8 +277,16 @@ class ListNetworkSubport(command.Lister): client = self.app.client_manager.network trunk_id = client.find_trunk(parsed_args.trunk) data = client.get_trunk_subports(trunk_id) - headers = ('Port', 'Segmentation Type', 'Segmentation ID') - columns = ('port_id', 'segmentation_type', 'segmentation_id') + headers: tuple[str, ...] = ( + 'Port', + 'Segmentation Type', + 'Segmentation ID', + ) + columns: tuple[str, ...] = ( + 'port_id', + 'segmentation_type', + 'segmentation_id', + ) return ( headers, ( diff --git a/openstackclient/network/v2/router.py b/openstackclient/network/v2/router.py index 9f99bb5dde..2794df43aa 100644 --- a/openstackclient/network/v2/router.py +++ b/openstackclient/network/v2/router.py @@ -734,14 +734,14 @@ class ListRouter(command.Lister): identity_client = self.app.client_manager.identity client = self.app.client_manager.network - columns = ( + columns: tuple[str, ...] = ( 'id', 'name', 'status', 'is_admin_state_up', 'project_id', ) - column_headers = ( + column_headers: tuple[str, ...] = ( 'ID', 'Name', 'Status', @@ -787,27 +787,27 @@ class ListRouter(command.Lister): d.is_distributed is not None and 'is_distributed' not in columns ): - columns = columns + ('is_distributed',) - column_headers = column_headers + ('Distributed',) + columns += ('is_distributed',) + column_headers += ('Distributed',) if d.is_ha is not None and 'is_ha' not in columns: - columns = columns + ('is_ha',) - column_headers = column_headers + ('HA',) + columns += ('is_ha',) + column_headers += ('HA',) if parsed_args.long: - columns = columns + ( + columns += ( 'routes', 'external_gateway_info', ) - column_headers = column_headers + ( + column_headers += ( 'Routes', 'External gateway info', ) # availability zone will be available only when # router_availability_zone extension is enabled if client.find_extension("router_availability_zone"): - columns = columns + ('availability_zones',) - column_headers = column_headers + ('Availability zones',) - columns = columns + ('tags',) - column_headers = column_headers + ('Tags',) + columns += ('availability_zones',) + column_headers += ('Availability zones',) + columns += ('tags',) + column_headers += ('Tags',) return ( column_headers, diff --git a/openstackclient/network/v2/security_group.py b/openstackclient/network/v2/security_group.py index 5d78ba7602..32b544fce1 100644 --- a/openstackclient/network/v2/security_group.py +++ b/openstackclient/network/v2/security_group.py @@ -277,7 +277,7 @@ class ListSecurityGroup(common.NetworkAndComputeLister): fields=self.FIELDS_TO_RETRIEVE, **filters ) - columns = ("ID", "Name", "Description", "Project ID", "tags") + columns = ("id", "name", "description", "project_id", "tags") column_headers = ("ID", "Name", "Description", "Project", "Tags") return ( column_headers, @@ -297,15 +297,11 @@ class ListSecurityGroup(common.NetworkAndComputeLister): all_projects=parsed_args.all_projects, ) - columns = ( - "ID", - "Name", - "Description", - ) - column_headers = columns + columns: tuple[str, ...] = ("id", "name", "description") + column_headers: tuple[str, ...] = ("ID", "Name", "Description") if parsed_args.all_projects: - columns = columns + ('Tenant ID',) - column_headers = column_headers + ('Project',) + columns += ('tenant_id',) + column_headers += ('Project',) return ( column_headers, ( diff --git a/openstackclient/network/v2/security_group_rule.py b/openstackclient/network/v2/security_group_rule.py index f9f8a42870..884e7a2f7c 100644 --- a/openstackclient/network/v2/security_group_rule.py +++ b/openstackclient/network/v2/security_group_rule.py @@ -451,7 +451,7 @@ class ListSecurityGroupRule(common.NetworkAndComputeLister): return parser def _get_column_headers(self, parsed_args): - column_headers = ( + column_headers: tuple[str, ...] = ( 'ID', 'IP Protocol', 'Ethertype', @@ -461,9 +461,9 @@ class ListSecurityGroupRule(common.NetworkAndComputeLister): 'Remote Security Group', ) if self.is_neutron: - column_headers = column_headers + ('Remote Address Group',) + column_headers += ('Remote Address Group',) if parsed_args.group is None: - column_headers = column_headers + ('Security Group',) + column_headers += ('Security Group',) return column_headers def take_action_network(self, client, parsed_args): @@ -474,7 +474,7 @@ class ListSecurityGroupRule(common.NetworkAndComputeLister): self.log.warning(msg) column_headers = self._get_column_headers(parsed_args) - columns = ( + columns: tuple[str, ...] = ( 'id', 'protocol', 'ether_type', @@ -496,7 +496,7 @@ class ListSecurityGroupRule(common.NetworkAndComputeLister): ).id query = {'security_group_id': security_group_id} else: - columns = columns + ('security_group_id',) + columns += ('security_group_id',) if parsed_args.ingress: query['direction'] = 'ingress' @@ -523,7 +523,7 @@ class ListSecurityGroupRule(common.NetworkAndComputeLister): def take_action_compute(self, client, parsed_args): column_headers = self._get_column_headers(parsed_args) - columns = ( + columns: tuple[str, ...] = ( "ID", "IP Protocol", "Ethertype", @@ -539,7 +539,7 @@ class ListSecurityGroupRule(common.NetworkAndComputeLister): ) rules_to_list = security_group['rules'] else: - columns = columns + ('parent_group_id',) + columns += ('parent_group_id',) for security_group in compute_v2.list_security_groups( client, all_projects=parsed_args.all_projects ): diff --git a/openstackclient/network/v2/subnet.py b/openstackclient/network/v2/subnet.py index d48f941997..7e9c30d90c 100644 --- a/openstackclient/network/v2/subnet.py +++ b/openstackclient/network/v2/subnet.py @@ -606,8 +606,8 @@ class ListSubnet(command.Lister): _tag.get_tag_filtering_args(parsed_args, filters) data = network_client.subnets(**filters) - headers = ('ID', 'Name', 'Network', 'Subnet') - columns = ('id', 'name', 'network_id', 'cidr') + headers: tuple[str, ...] = ('ID', 'Name', 'Network', 'Subnet') + columns: tuple[str, ...] = ('id', 'name', 'network_id', 'cidr') if parsed_args.long: headers += ( 'Project', diff --git a/openstackclient/network/v2/subnet_pool.py b/openstackclient/network/v2/subnet_pool.py index fca3bfa667..2917c40261 100644 --- a/openstackclient/network/v2/subnet_pool.py +++ b/openstackclient/network/v2/subnet_pool.py @@ -356,8 +356,8 @@ class ListSubnetPool(command.Lister): _tag.get_tag_filtering_args(parsed_args, filters) data = network_client.subnet_pools(**filters) - headers = ('ID', 'Name', 'Prefixes') - columns = ('id', 'name', 'prefixes') + headers: tuple[str, ...] = ('ID', 'Name', 'Prefixes') + columns: tuple[str, ...] = ('id', 'name', 'prefixes') if parsed_args.long: headers += ( 'Default Prefix Length', diff --git a/openstackclient/object/v1/container.py b/openstackclient/object/v1/container.py index c4d0e42b9d..f4250dbba1 100644 --- a/openstackclient/object/v1/container.py +++ b/openstackclient/object/v1/container.py @@ -148,10 +148,9 @@ class ListContainer(command.Lister): return parser def take_action(self, parsed_args): + columns: tuple[str, ...] = ('Name',) if parsed_args.long: - columns = ('Name', 'Bytes', 'Count') - else: - columns = ('Name',) + columns += ('Bytes', 'Count') kwargs = {} if parsed_args.prefix: diff --git a/openstackclient/object/v1/object.py b/openstackclient/object/v1/object.py index 4edb314930..cb8e4ffeb8 100644 --- a/openstackclient/object/v1/object.py +++ b/openstackclient/object/v1/object.py @@ -162,16 +162,9 @@ class ListObject(command.Lister): return parser def take_action(self, parsed_args): + columns: tuple[str, ...] = ('Name',) if parsed_args.long: - columns = ( - 'Name', - 'Bytes', - 'Hash', - 'Content Type', - 'Last Modified', - ) - else: - columns = ('Name',) + columns += ('Bytes', 'Hash', 'Content Type', 'Last Modified') kwargs = {} if parsed_args.prefix: diff --git a/openstackclient/volume/v1/volume.py b/openstackclient/volume/v1/volume.py index 78619320f7..1634624c02 100644 --- a/openstackclient/volume/v1/volume.py +++ b/openstackclient/volume/v1/volume.py @@ -376,7 +376,7 @@ class ListVolume(command.Lister): volume_client = self.app.client_manager.volume if parsed_args.long: - columns = ( + columns: tuple[str, ...] = ( 'ID', 'Display Name', 'Status', @@ -386,7 +386,7 @@ class ListVolume(command.Lister): 'Attachments', 'Metadata', ) - column_headers = ( + column_headers: tuple[str, ...] = ( 'ID', 'Name', 'Status', diff --git a/openstackclient/volume/v2/volume_backup.py b/openstackclient/volume/v2/volume_backup.py index 5e0c75b6ef..f6746eec85 100644 --- a/openstackclient/volume/v2/volume_backup.py +++ b/openstackclient/volume/v2/volume_backup.py @@ -118,7 +118,7 @@ class CreateVolumeBackup(command.ShowOne): ignore_missing=False, ).id - columns = ( + columns: tuple[str, ...] = ( "id", "name", "volume_id", @@ -240,7 +240,7 @@ class ListVolumeBackup(command.Lister): def take_action(self, parsed_args): volume_client = self.app.client_manager.sdk_connection.volume - columns = ( + columns: tuple[str, ...] = ( 'id', 'name', 'description', @@ -249,7 +249,7 @@ class ListVolumeBackup(command.Lister): 'is_incremental', 'created_at', ) - column_headers = ( + column_headers: tuple[str, ...] = ( 'ID', 'Name', 'Description', @@ -358,7 +358,7 @@ class RestoreVolumeBackup(command.ShowOne): ignore_missing=False, ) - columns = ( + columns: tuple[str, ...] = ( 'id', 'volume_id', 'volume_name', @@ -448,7 +448,7 @@ class ShowVolumeBackup(command.ShowOne): def take_action(self, parsed_args): volume_client = self.app.client_manager.sdk_connection.volume backup = volume_client.find_backup(parsed_args.backup) - columns = ( + columns: tuple[str, ...] = ( "availability_zone", "container", "created_at", diff --git a/openstackclient/volume/v3/block_storage_cluster.py b/openstackclient/volume/v3/block_storage_cluster.py index 58bcae67cb..8cf01b2478 100644 --- a/openstackclient/volume/v3/block_storage_cluster.py +++ b/openstackclient/volume/v3/block_storage_cluster.py @@ -19,13 +19,13 @@ from openstackclient.i18n import _ def _format_cluster(cluster, detailed=False): - columns = ( + columns: tuple[str, ...] = ( 'name', 'binary', 'state', 'status', ) - column_headers = ( + column_headers: tuple[str, ...] = ( 'Name', 'Binary', 'State', @@ -147,7 +147,7 @@ class ListBlockStorageCluster(command.Lister): ) raise exceptions.CommandError(msg) - columns = ('Name', 'Binary', 'State', 'Status') + columns: tuple[str, ...] = ('Name', 'Binary', 'State', 'Status') if parsed_args.long: columns += ( 'Num Hosts', diff --git a/openstackclient/volume/v3/volume_backup.py b/openstackclient/volume/v3/volume_backup.py index 82384a11c1..9892eadb06 100644 --- a/openstackclient/volume/v3/volume_backup.py +++ b/openstackclient/volume/v3/volume_backup.py @@ -162,7 +162,7 @@ class CreateVolumeBackup(command.ShowOne): kwargs['availability_zone'] = parsed_args.availability_zone - columns = ( + columns: tuple[str, ...] = ( "id", "name", "volume_id", @@ -298,7 +298,7 @@ class ListVolumeBackup(command.Lister): def take_action(self, parsed_args): volume_client = self.app.client_manager.sdk_connection.volume - columns = ( + columns: tuple[str, ...] = ( 'id', 'name', 'description', @@ -307,7 +307,7 @@ class ListVolumeBackup(command.Lister): 'is_incremental', 'created_at', ) - column_headers = ( + column_headers: tuple[str, ...] = ( 'ID', 'Name', 'Description', @@ -411,7 +411,7 @@ class RestoreVolumeBackup(command.ShowOne): def take_action(self, parsed_args): volume_client = self.app.client_manager.sdk_connection.volume - columns = ( + columns: tuple[str, ...] = ( 'id', 'volume_id', 'volume_name', @@ -654,7 +654,7 @@ class ShowVolumeBackup(command.ShowOne): def take_action(self, parsed_args): volume_client = self.app.client_manager.sdk_connection.volume backup = volume_client.find_backup(parsed_args.backup) - columns = ( + columns: tuple[str, ...] = ( "availability_zone", "container", "created_at",