python-openstackclient 7.4.0__py3-none-any.whl → 8.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- openstackclient/common/availability_zone.py +3 -6
- openstackclient/common/clientmanager.py +2 -1
- openstackclient/common/envvars.py +57 -0
- openstackclient/common/extension.py +3 -11
- openstackclient/common/limits.py +1 -1
- openstackclient/common/project_cleanup.py +3 -2
- openstackclient/common/quota.py +54 -28
- openstackclient/compute/client.py +7 -5
- openstackclient/compute/v2/agent.py +5 -5
- openstackclient/compute/v2/aggregate.py +17 -15
- openstackclient/compute/v2/console.py +10 -4
- openstackclient/compute/v2/console_connection.py +48 -0
- openstackclient/compute/v2/flavor.py +14 -18
- openstackclient/compute/v2/host.py +3 -3
- openstackclient/compute/v2/hypervisor.py +10 -4
- openstackclient/compute/v2/hypervisor_stats.py +1 -1
- openstackclient/compute/v2/keypair.py +18 -13
- openstackclient/compute/v2/server.py +144 -121
- openstackclient/compute/v2/server_backup.py +1 -1
- openstackclient/compute/v2/server_event.py +8 -17
- openstackclient/compute/v2/server_group.py +6 -6
- openstackclient/compute/v2/server_image.py +1 -1
- openstackclient/compute/v2/server_migration.py +6 -6
- openstackclient/compute/v2/server_volume.py +4 -4
- openstackclient/compute/v2/service.py +9 -13
- openstackclient/compute/v2/usage.py +4 -6
- openstackclient/identity/client.py +2 -4
- openstackclient/identity/common.py +95 -17
- openstackclient/identity/v2_0/ec2creds.py +4 -3
- openstackclient/identity/v2_0/endpoint.py +12 -10
- openstackclient/identity/v2_0/project.py +6 -6
- openstackclient/identity/v2_0/role.py +1 -1
- openstackclient/identity/v2_0/service.py +7 -7
- openstackclient/identity/v2_0/user.py +6 -21
- openstackclient/identity/v3/access_rule.py +2 -5
- openstackclient/identity/v3/application_credential.py +2 -2
- openstackclient/identity/v3/consumer.py +4 -3
- openstackclient/identity/v3/credential.py +6 -7
- openstackclient/identity/v3/domain.py +63 -44
- openstackclient/identity/v3/ec2creds.py +4 -3
- openstackclient/identity/v3/endpoint.py +104 -88
- openstackclient/identity/v3/endpoint_group.py +1 -1
- openstackclient/identity/v3/group.py +116 -72
- openstackclient/identity/v3/identity_provider.py +1 -2
- openstackclient/identity/v3/limit.py +4 -9
- openstackclient/identity/v3/mapping.py +4 -3
- openstackclient/identity/v3/policy.py +5 -8
- openstackclient/identity/v3/project.py +23 -6
- openstackclient/identity/v3/region.py +2 -5
- openstackclient/identity/v3/registered_limit.py +4 -8
- openstackclient/identity/v3/role.py +15 -16
- openstackclient/identity/v3/service.py +8 -8
- openstackclient/identity/v3/service_provider.py +3 -6
- openstackclient/identity/v3/tag.py +2 -2
- openstackclient/identity/v3/token.py +1 -2
- openstackclient/identity/v3/trust.py +74 -25
- openstackclient/identity/v3/user.py +47 -11
- openstackclient/image/client.py +7 -5
- openstackclient/image/v1/image.py +11 -15
- openstackclient/image/v2/cache.py +2 -4
- openstackclient/image/v2/image.py +41 -48
- openstackclient/image/v2/metadef_namespaces.py +4 -3
- openstackclient/image/v2/metadef_resource_type_association.py +1 -2
- openstackclient/image/v2/metadef_resource_types.py +1 -2
- openstackclient/locale/tr_TR/LC_MESSAGES/openstackclient.po +9 -1370
- openstackclient/network/client.py +4 -16
- openstackclient/network/common.py +16 -12
- openstackclient/network/utils.py +3 -3
- openstackclient/network/v2/address_group.py +5 -9
- openstackclient/network/v2/address_scope.py +2 -3
- openstackclient/network/v2/default_security_group_rule.py +1 -2
- openstackclient/network/v2/floating_ip.py +69 -47
- openstackclient/network/v2/floating_ip_port_forwarding.py +7 -7
- openstackclient/network/v2/ip_availability.py +1 -2
- openstackclient/network/v2/l3_conntrack_helper.py +8 -12
- openstackclient/network/v2/local_ip.py +24 -26
- openstackclient/network/v2/local_ip_association.py +4 -5
- openstackclient/network/v2/ndp_proxy.py +9 -10
- openstackclient/network/v2/network.py +12 -16
- openstackclient/network/v2/network_agent.py +29 -37
- openstackclient/network/v2/network_auto_allocated_topology.py +4 -5
- openstackclient/network/v2/network_flavor.py +1 -1
- openstackclient/network/v2/network_flavor_profile.py +5 -5
- openstackclient/network/v2/network_meter.py +3 -3
- openstackclient/network/v2/network_meter_rule.py +5 -8
- openstackclient/network/v2/network_qos_policy.py +4 -4
- openstackclient/network/v2/network_qos_rule.py +7 -16
- openstackclient/network/v2/network_rbac.py +4 -4
- openstackclient/network/v2/network_segment.py +6 -7
- openstackclient/network/v2/network_segment_range.py +16 -20
- openstackclient/network/v2/network_trunk.py +24 -16
- openstackclient/network/v2/port.py +28 -29
- openstackclient/network/v2/router.py +53 -42
- openstackclient/network/v2/security_group.py +13 -19
- openstackclient/network/v2/security_group_rule.py +10 -11
- openstackclient/network/v2/subnet.py +31 -30
- openstackclient/network/v2/subnet_pool.py +4 -4
- openstackclient/object/client.py +2 -3
- openstackclient/object/v1/container.py +2 -3
- openstackclient/object/v1/object.py +2 -9
- openstackclient/shell.py +22 -5
- openstackclient/tests/functional/base.py +7 -3
- openstackclient/tests/functional/common/test_quota.py +3 -1
- openstackclient/tests/functional/compute/v2/common.py +12 -6
- openstackclient/tests/functional/compute/v2/test_keypair.py +41 -5
- openstackclient/tests/functional/compute/v2/test_server.py +2 -3
- openstackclient/tests/functional/compute/v2/test_server_event.py +1 -1
- openstackclient/tests/functional/identity/v2/test_user.py +1 -1
- openstackclient/tests/functional/identity/v3/common.py +3 -8
- openstackclient/tests/functional/identity/v3/test_application_credential.py +10 -10
- openstackclient/tests/functional/identity/v3/test_endpoint.py +3 -3
- openstackclient/tests/functional/identity/v3/test_group.py +3 -3
- openstackclient/tests/functional/identity/v3/test_idp.py +3 -7
- openstackclient/tests/functional/identity/v3/test_limit.py +4 -4
- openstackclient/tests/functional/identity/v3/test_project.py +5 -14
- openstackclient/tests/functional/identity/v3/test_region.py +1 -3
- openstackclient/tests/functional/identity/v3/test_registered_limit.py +3 -3
- openstackclient/tests/functional/identity/v3/test_role.py +1 -1
- openstackclient/tests/functional/identity/v3/test_role_assignment.py +13 -31
- openstackclient/tests/functional/identity/v3/test_service_provider.py +3 -7
- openstackclient/tests/functional/identity/v3/test_user.py +8 -8
- openstackclient/tests/functional/network/v2/common.py +7 -3
- openstackclient/tests/functional/network/v2/test_address_group.py +4 -0
- openstackclient/tests/functional/network/v2/test_l3_conntrack_helper.py +15 -11
- openstackclient/tests/functional/network/v2/test_local_ip.py +4 -0
- openstackclient/tests/functional/network/v2/test_network_meter_rule.py +2 -2
- openstackclient/tests/functional/network/v2/test_network_ndp_proxy.py +2 -3
- openstackclient/tests/functional/network/v2/test_network_rbac.py +2 -2
- openstackclient/tests/functional/network/v2/test_network_trunk.py +1 -1
- openstackclient/tests/functional/network/v2/test_port.py +17 -7
- openstackclient/tests/functional/network/v2/test_router.py +42 -0
- openstackclient/tests/functional/network/v2/test_subnet_pool.py +4 -0
- openstackclient/tests/unit/api/test_compute_v2.py +67 -87
- openstackclient/tests/unit/common/test_availability_zone.py +6 -14
- openstackclient/tests/unit/common/test_command.py +1 -1
- openstackclient/tests/unit/common/test_extension.py +5 -7
- openstackclient/tests/unit/common/test_limits.py +1 -1
- openstackclient/tests/unit/common/test_project_cleanup.py +5 -6
- openstackclient/tests/unit/common/test_quota.py +51 -28
- openstackclient/tests/unit/compute/v2/fakes.py +85 -315
- openstackclient/tests/unit/compute/v2/test_agent.py +16 -16
- openstackclient/tests/unit/compute/v2/test_aggregate.py +56 -60
- openstackclient/tests/unit/compute/v2/test_console.py +34 -17
- openstackclient/tests/unit/compute/v2/test_console_connection.py +72 -0
- openstackclient/tests/unit/compute/v2/test_flavor.py +72 -72
- openstackclient/tests/unit/compute/v2/test_host.py +8 -8
- openstackclient/tests/unit/compute/v2/test_hypervisor.py +22 -30
- openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +2 -2
- openstackclient/tests/unit/compute/v2/test_keypair.py +36 -29
- openstackclient/tests/unit/compute/v2/test_server.py +693 -606
- openstackclient/tests/unit/compute/v2/test_server_backup.py +36 -77
- openstackclient/tests/unit/compute/v2/test_server_event.py +18 -20
- openstackclient/tests/unit/compute/v2/test_server_group.py +25 -31
- openstackclient/tests/unit/compute/v2/test_server_image.py +37 -78
- openstackclient/tests/unit/compute/v2/test_server_migration.py +41 -41
- openstackclient/tests/unit/compute/v2/test_server_volume.py +12 -12
- openstackclient/tests/unit/compute/v2/test_service.py +39 -45
- openstackclient/tests/unit/compute/v2/test_usage.py +5 -5
- openstackclient/tests/unit/identity/v2_0/fakes.py +1 -1
- openstackclient/tests/unit/identity/v3/test_access_rule.py +1 -3
- openstackclient/tests/unit/identity/v3/test_application_credential.py +48 -26
- openstackclient/tests/unit/identity/v3/test_domain.py +115 -105
- openstackclient/tests/unit/identity/v3/test_endpoint.py +167 -172
- openstackclient/tests/unit/identity/v3/test_group.py +353 -202
- openstackclient/tests/unit/identity/v3/test_mappings.py +2 -2
- openstackclient/tests/unit/identity/v3/test_project.py +16 -0
- openstackclient/tests/unit/identity/v3/test_trust.py +5 -2
- openstackclient/tests/unit/identity/v3/test_user.py +102 -6
- openstackclient/tests/unit/image/v1/fakes.py +2 -2
- openstackclient/tests/unit/image/v1/test_image.py +8 -9
- openstackclient/tests/unit/image/v2/test_image.py +84 -46
- openstackclient/tests/unit/integ/cli/test_shell.py +1 -2
- openstackclient/tests/unit/network/test_common.py +2 -2
- openstackclient/tests/unit/network/v2/fakes.py +405 -485
- openstackclient/tests/unit/network/v2/test_floating_ip_compute.py +8 -14
- openstackclient/tests/unit/network/v2/test_floating_ip_network.py +62 -54
- openstackclient/tests/unit/network/v2/test_floating_ip_pool_compute.py +1 -1
- openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +2 -2
- openstackclient/tests/unit/network/v2/test_ndp_proxy.py +1 -3
- openstackclient/tests/unit/network/v2/test_network.py +4 -4
- openstackclient/tests/unit/network/v2/test_network_agent.py +15 -29
- openstackclient/tests/unit/network/v2/test_network_compute.py +11 -11
- openstackclient/tests/unit/network/v2/test_network_qos_policy.py +16 -19
- openstackclient/tests/unit/network/v2/test_network_qos_rule.py +79 -152
- openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +4 -6
- openstackclient/tests/unit/network/v2/test_network_rbac.py +2 -2
- openstackclient/tests/unit/network/v2/test_network_trunk.py +2 -2
- openstackclient/tests/unit/network/v2/test_port.py +21 -22
- openstackclient/tests/unit/network/v2/test_router.py +130 -51
- openstackclient/tests/unit/network/v2/test_security_group_compute.py +11 -19
- openstackclient/tests/unit/network/v2/test_security_group_network.py +25 -27
- openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py +15 -17
- openstackclient/tests/unit/network/v2/test_security_group_rule_network.py +33 -39
- openstackclient/tests/unit/object/v1/test_object_all.py +4 -3
- openstackclient/tests/unit/test_shell.py +16 -13
- openstackclient/tests/unit/volume/v2/fakes.py +1 -2
- openstackclient/tests/unit/volume/v2/test_service.py +57 -91
- openstackclient/tests/unit/volume/v2/test_volume.py +109 -106
- openstackclient/tests/unit/volume/v2/test_volume_backup.py +141 -148
- openstackclient/tests/unit/volume/v2/test_volume_snapshot.py +293 -283
- openstackclient/tests/unit/volume/v2/test_volume_transfer_request.py +1 -1
- openstackclient/tests/unit/volume/v3/fakes.py +2 -8
- openstackclient/tests/unit/volume/v3/test_block_storage_log_level.py +61 -71
- openstackclient/tests/unit/volume/v3/test_service.py +221 -141
- openstackclient/tests/unit/volume/v3/test_volume.py +131 -120
- openstackclient/tests/unit/volume/v3/test_volume_attachment.py +4 -4
- openstackclient/tests/unit/volume/v3/test_volume_backup.py +198 -203
- openstackclient/tests/unit/volume/v3/test_volume_snapshot.py +683 -49
- openstackclient/tests/unit/volume/v3/test_volume_transfer_request.py +1 -1
- openstackclient/volume/client.py +1 -3
- openstackclient/volume/v2/consistency_group.py +4 -8
- openstackclient/volume/v2/consistency_group_snapshot.py +1 -2
- openstackclient/volume/v2/qos_specs.py +1 -2
- openstackclient/volume/v2/service.py +41 -38
- openstackclient/volume/v2/volume.py +71 -53
- openstackclient/volume/v2/volume_backup.py +15 -10
- openstackclient/volume/v2/volume_snapshot.py +129 -93
- openstackclient/volume/v2/volume_transfer_request.py +0 -3
- openstackclient/volume/v2/volume_type.py +10 -21
- openstackclient/volume/v3/block_storage_cluster.py +3 -3
- openstackclient/volume/v3/block_storage_log_level.py +22 -28
- openstackclient/volume/v3/block_storage_manage.py +1 -3
- openstackclient/volume/v3/service.py +105 -14
- openstackclient/volume/v3/volume.py +218 -58
- openstackclient/volume/v3/volume_attachment.py +3 -2
- openstackclient/volume/v3/volume_backup.py +31 -27
- openstackclient/volume/v3/volume_group.py +2 -1
- openstackclient/volume/v3/volume_group_snapshot.py +2 -1
- openstackclient/volume/v3/volume_snapshot.py +489 -13
- openstackclient/volume/v3/volume_type.py +10 -21
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/AUTHORS +11 -0
- python_openstackclient-8.1.0.dist-info/METADATA +264 -0
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/RECORD +238 -259
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/WHEEL +1 -1
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/entry_points.txt +7 -47
- python_openstackclient-8.1.0.dist-info/pbr.json +1 -0
- openstackclient/tests/functional/volume/v1/__init__.py +0 -0
- openstackclient/tests/functional/volume/v1/common.py +0 -35
- openstackclient/tests/functional/volume/v1/test_qos.py +0 -100
- openstackclient/tests/functional/volume/v1/test_service.py +0 -76
- openstackclient/tests/functional/volume/v1/test_snapshot.py +0 -232
- openstackclient/tests/functional/volume/v1/test_transfer_request.py +0 -111
- openstackclient/tests/functional/volume/v1/test_volume.py +0 -228
- openstackclient/tests/functional/volume/v1/test_volume_type.py +0 -213
- openstackclient/tests/unit/volume/v1/__init__.py +0 -0
- openstackclient/tests/unit/volume/v1/fakes.py +0 -615
- openstackclient/tests/unit/volume/v1/test_qos_specs.py +0 -471
- openstackclient/tests/unit/volume/v1/test_service.py +0 -295
- openstackclient/tests/unit/volume/v1/test_transfer_request.py +0 -380
- openstackclient/tests/unit/volume/v1/test_type.py +0 -633
- openstackclient/tests/unit/volume/v1/test_volume.py +0 -1447
- openstackclient/tests/unit/volume/v1/test_volume_backup.py +0 -435
- openstackclient/volume/v1/__init__.py +0 -0
- openstackclient/volume/v1/qos_specs.py +0 -377
- openstackclient/volume/v1/service.py +0 -136
- openstackclient/volume/v1/volume.py +0 -734
- openstackclient/volume/v1/volume_backup.py +0 -302
- openstackclient/volume/v1/volume_snapshot.py +0 -433
- openstackclient/volume/v1/volume_transfer_request.py +0 -200
- openstackclient/volume/v1/volume_type.py +0 -520
- python_openstackclient-7.4.0.dist-info/METADATA +0 -172
- python_openstackclient-7.4.0.dist-info/pbr.json +0 -1
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/LICENSE +0 -0
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/top_level.txt +0 -0
|
@@ -18,7 +18,6 @@ import copy
|
|
|
18
18
|
import functools
|
|
19
19
|
import logging
|
|
20
20
|
|
|
21
|
-
from cinderclient import api_versions
|
|
22
21
|
from cliff import columns as cliff_columns
|
|
23
22
|
from openstack import utils as sdk_utils
|
|
24
23
|
from osc_lib.cli import parseractions
|
|
@@ -162,7 +161,7 @@ class CreateVolumeBackup(command.ShowOne):
|
|
|
162
161
|
|
|
163
162
|
kwargs['availability_zone'] = parsed_args.availability_zone
|
|
164
163
|
|
|
165
|
-
columns = (
|
|
164
|
+
columns: tuple[str, ...] = (
|
|
166
165
|
"id",
|
|
167
166
|
"name",
|
|
168
167
|
"volume_id",
|
|
@@ -298,7 +297,7 @@ class ListVolumeBackup(command.Lister):
|
|
|
298
297
|
def take_action(self, parsed_args):
|
|
299
298
|
volume_client = self.app.client_manager.sdk_connection.volume
|
|
300
299
|
|
|
301
|
-
columns = (
|
|
300
|
+
columns: tuple[str, ...] = (
|
|
302
301
|
'id',
|
|
303
302
|
'name',
|
|
304
303
|
'description',
|
|
@@ -307,7 +306,7 @@ class ListVolumeBackup(command.Lister):
|
|
|
307
306
|
'is_incremental',
|
|
308
307
|
'created_at',
|
|
309
308
|
)
|
|
310
|
-
column_headers = (
|
|
309
|
+
column_headers: tuple[str, ...] = (
|
|
311
310
|
'ID',
|
|
312
311
|
'Name',
|
|
313
312
|
'Description',
|
|
@@ -403,8 +402,7 @@ class RestoreVolumeBackup(command.ShowOne):
|
|
|
403
402
|
"--force",
|
|
404
403
|
action="store_true",
|
|
405
404
|
help=_(
|
|
406
|
-
"Restore the backup to an existing volume "
|
|
407
|
-
"(default to False)"
|
|
405
|
+
"Restore the backup to an existing volume (default to False)"
|
|
408
406
|
),
|
|
409
407
|
)
|
|
410
408
|
return parser
|
|
@@ -412,7 +410,7 @@ class RestoreVolumeBackup(command.ShowOne):
|
|
|
412
410
|
def take_action(self, parsed_args):
|
|
413
411
|
volume_client = self.app.client_manager.sdk_connection.volume
|
|
414
412
|
|
|
415
|
-
columns = (
|
|
413
|
+
columns: tuple[str, ...] = (
|
|
416
414
|
'id',
|
|
417
415
|
'volume_id',
|
|
418
416
|
'volume_name',
|
|
@@ -466,7 +464,7 @@ class SetVolumeBackup(command.Command):
|
|
|
466
464
|
'--name',
|
|
467
465
|
metavar='<name>',
|
|
468
466
|
help=_(
|
|
469
|
-
'New backup name'
|
|
467
|
+
'New backup name '
|
|
470
468
|
'(supported by --os-volume-api-version 3.9 or above)'
|
|
471
469
|
),
|
|
472
470
|
)
|
|
@@ -513,13 +511,19 @@ class SetVolumeBackup(command.Command):
|
|
|
513
511
|
return parser
|
|
514
512
|
|
|
515
513
|
def take_action(self, parsed_args):
|
|
516
|
-
volume_client = self.app.client_manager.volume
|
|
517
|
-
|
|
514
|
+
volume_client = self.app.client_manager.sdk_connection.volume
|
|
515
|
+
|
|
516
|
+
backup = volume_client.find_backup(
|
|
517
|
+
parsed_args.backup,
|
|
518
|
+
ignore_missing=False,
|
|
519
|
+
)
|
|
518
520
|
|
|
519
521
|
result = 0
|
|
520
522
|
if parsed_args.state:
|
|
521
523
|
try:
|
|
522
|
-
volume_client.
|
|
524
|
+
volume_client.reset_backup_status(
|
|
525
|
+
backup, status=parsed_args.state
|
|
526
|
+
)
|
|
523
527
|
except Exception as e:
|
|
524
528
|
LOG.error(_("Failed to set backup state: %s"), e)
|
|
525
529
|
result += 1
|
|
@@ -527,7 +531,7 @@ class SetVolumeBackup(command.Command):
|
|
|
527
531
|
kwargs = {}
|
|
528
532
|
|
|
529
533
|
if parsed_args.name:
|
|
530
|
-
if
|
|
534
|
+
if not sdk_utils.supports_microversion(volume_client, '3.9'):
|
|
531
535
|
msg = _(
|
|
532
536
|
'--os-volume-api-version 3.9 or greater is required to '
|
|
533
537
|
'support the --name option'
|
|
@@ -537,7 +541,7 @@ class SetVolumeBackup(command.Command):
|
|
|
537
541
|
kwargs['name'] = parsed_args.name
|
|
538
542
|
|
|
539
543
|
if parsed_args.description:
|
|
540
|
-
if
|
|
544
|
+
if not sdk_utils.supports_microversion(volume_client, '3.9'):
|
|
541
545
|
msg = _(
|
|
542
546
|
'--os-volume-api-version 3.9 or greater is required to '
|
|
543
547
|
'support the --description option'
|
|
@@ -547,7 +551,7 @@ class SetVolumeBackup(command.Command):
|
|
|
547
551
|
kwargs['description'] = parsed_args.description
|
|
548
552
|
|
|
549
553
|
if parsed_args.no_property:
|
|
550
|
-
if
|
|
554
|
+
if not sdk_utils.supports_microversion(volume_client, '3.43'):
|
|
551
555
|
msg = _(
|
|
552
556
|
'--os-volume-api-version 3.43 or greater is required to '
|
|
553
557
|
'support the --no-property option'
|
|
@@ -555,14 +559,14 @@ class SetVolumeBackup(command.Command):
|
|
|
555
559
|
raise exceptions.CommandError(msg)
|
|
556
560
|
|
|
557
561
|
if parsed_args.properties:
|
|
558
|
-
if
|
|
562
|
+
if not sdk_utils.supports_microversion(volume_client, '3.43'):
|
|
559
563
|
msg = _(
|
|
560
564
|
'--os-volume-api-version 3.43 or greater is required to '
|
|
561
565
|
'support the --property option'
|
|
562
566
|
)
|
|
563
567
|
raise exceptions.CommandError(msg)
|
|
564
568
|
|
|
565
|
-
if volume_client
|
|
569
|
+
if sdk_utils.supports_microversion(volume_client, '3.43'):
|
|
566
570
|
metadata = copy.deepcopy(backup.metadata)
|
|
567
571
|
|
|
568
572
|
if parsed_args.no_property:
|
|
@@ -573,7 +577,7 @@ class SetVolumeBackup(command.Command):
|
|
|
573
577
|
|
|
574
578
|
if kwargs:
|
|
575
579
|
try:
|
|
576
|
-
volume_client.
|
|
580
|
+
volume_client.update_backup(backup, **kwargs)
|
|
577
581
|
except Exception as e:
|
|
578
582
|
LOG.error("Failed to update backup: %s", e)
|
|
579
583
|
result += 1
|
|
@@ -609,16 +613,18 @@ class UnsetVolumeBackup(command.Command):
|
|
|
609
613
|
return parser
|
|
610
614
|
|
|
611
615
|
def take_action(self, parsed_args):
|
|
612
|
-
volume_client = self.app.client_manager.volume
|
|
616
|
+
volume_client = self.app.client_manager.sdk_connection.volume
|
|
613
617
|
|
|
614
|
-
if
|
|
618
|
+
if not sdk_utils.supports_microversion(volume_client, '3.43'):
|
|
615
619
|
msg = _(
|
|
616
620
|
'--os-volume-api-version 3.43 or greater is required to '
|
|
617
621
|
'support the --property option'
|
|
618
622
|
)
|
|
619
623
|
raise exceptions.CommandError(msg)
|
|
620
624
|
|
|
621
|
-
backup =
|
|
625
|
+
backup = volume_client.find_backup(
|
|
626
|
+
parsed_args.backup, ignore_missing=False
|
|
627
|
+
)
|
|
622
628
|
metadata = copy.deepcopy(backup.metadata)
|
|
623
629
|
|
|
624
630
|
for key in parsed_args.properties:
|
|
@@ -633,11 +639,7 @@ class UnsetVolumeBackup(command.Command):
|
|
|
633
639
|
|
|
634
640
|
del metadata[key]
|
|
635
641
|
|
|
636
|
-
|
|
637
|
-
'metadata': metadata,
|
|
638
|
-
}
|
|
639
|
-
|
|
640
|
-
volume_client.backups.update(backup.id, **kwargs)
|
|
642
|
+
volume_client.delete_backup_metadata(backup, keys=list(metadata))
|
|
641
643
|
|
|
642
644
|
|
|
643
645
|
class ShowVolumeBackup(command.ShowOne):
|
|
@@ -654,8 +656,10 @@ class ShowVolumeBackup(command.ShowOne):
|
|
|
654
656
|
|
|
655
657
|
def take_action(self, parsed_args):
|
|
656
658
|
volume_client = self.app.client_manager.sdk_connection.volume
|
|
657
|
-
backup = volume_client.find_backup(
|
|
658
|
-
|
|
659
|
+
backup = volume_client.find_backup(
|
|
660
|
+
parsed_args.backup, ignore_missing=False
|
|
661
|
+
)
|
|
662
|
+
columns: tuple[str, ...] = (
|
|
659
663
|
"availability_zone",
|
|
660
664
|
"container",
|
|
661
665
|
"created_at",
|
|
@@ -17,6 +17,7 @@ from osc_lib.command import command
|
|
|
17
17
|
from osc_lib import exceptions
|
|
18
18
|
from osc_lib import utils
|
|
19
19
|
|
|
20
|
+
from openstackclient.common import envvars
|
|
20
21
|
from openstackclient.i18n import _
|
|
21
22
|
|
|
22
23
|
|
|
@@ -410,7 +411,7 @@ class ListVolumeGroup(command.Lister):
|
|
|
410
411
|
'--all-projects',
|
|
411
412
|
dest='all_projects',
|
|
412
413
|
action='store_true',
|
|
413
|
-
default=
|
|
414
|
+
default=envvars.boolenv('ALL_PROJECTS'),
|
|
414
415
|
help=_('Shows details for all projects (admin only).'),
|
|
415
416
|
)
|
|
416
417
|
# TODO(stephenfin): Add once we have an equivalent command for
|
|
@@ -17,6 +17,7 @@ from osc_lib.command import command
|
|
|
17
17
|
from osc_lib import exceptions
|
|
18
18
|
from osc_lib import utils
|
|
19
19
|
|
|
20
|
+
from openstackclient.common import envvars
|
|
20
21
|
from openstackclient.i18n import _
|
|
21
22
|
|
|
22
23
|
LOG = logging.getLogger(__name__)
|
|
@@ -145,7 +146,7 @@ class ListVolumeGroupSnapshot(command.Lister):
|
|
|
145
146
|
'--all-projects',
|
|
146
147
|
dest='all_projects',
|
|
147
148
|
action='store_true',
|
|
148
|
-
default=
|
|
149
|
+
default=envvars.boolenv('ALL_PROJECTS'),
|
|
149
150
|
help=_('Shows details for all projects (admin only).'),
|
|
150
151
|
)
|
|
151
152
|
# TODO(stephenfin): Add once we have an equivalent command for
|