python-openstackclient 6.6.1__py3-none-any.whl → 7.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/api/api.py +4 -4
- openstackclient/api/compute_v2.py +352 -638
- openstackclient/api/image_v1.py +1 -1
- openstackclient/api/object_store_v1.py +3 -4
- openstackclient/common/availability_zone.py +1 -1
- openstackclient/common/clientmanager.py +24 -20
- openstackclient/common/configuration.py +1 -1
- openstackclient/common/extension.py +1 -1
- openstackclient/common/limits.py +67 -34
- openstackclient/common/module.py +3 -3
- openstackclient/common/progressbar.py +2 -2
- openstackclient/common/project_cleanup.py +5 -2
- openstackclient/common/quota.py +299 -423
- openstackclient/common/versions.py +1 -1
- openstackclient/compute/client.py +7 -116
- openstackclient/compute/v2/agent.py +75 -49
- openstackclient/compute/v2/aggregate.py +38 -32
- openstackclient/compute/v2/console.py +2 -2
- openstackclient/compute/v2/flavor.py +6 -6
- openstackclient/compute/v2/host.py +38 -33
- openstackclient/compute/v2/hypervisor.py +9 -6
- openstackclient/compute/v2/keypair.py +7 -8
- openstackclient/compute/v2/server.py +479 -396
- openstackclient/compute/v2/server_backup.py +1 -1
- openstackclient/compute/v2/server_group.py +4 -4
- openstackclient/compute/v2/server_image.py +1 -1
- openstackclient/compute/v2/server_migration.py +3 -4
- openstackclient/compute/v2/service.py +4 -4
- openstackclient/compute/v2/usage.py +3 -3
- openstackclient/identity/common.py +34 -0
- openstackclient/identity/v2_0/catalog.py +2 -2
- openstackclient/identity/v2_0/ec2creds.py +4 -4
- openstackclient/identity/v2_0/endpoint.py +4 -4
- openstackclient/identity/v2_0/project.py +6 -6
- openstackclient/identity/v2_0/role.py +5 -5
- openstackclient/identity/v2_0/role_assignment.py +1 -1
- openstackclient/identity/v2_0/service.py +4 -4
- openstackclient/identity/v2_0/token.py +2 -2
- openstackclient/identity/v2_0/user.py +7 -7
- openstackclient/identity/v3/access_rule.py +3 -3
- openstackclient/identity/v3/application_credential.py +125 -43
- openstackclient/identity/v3/catalog.py +2 -2
- openstackclient/identity/v3/consumer.py +4 -4
- openstackclient/identity/v3/credential.py +5 -5
- openstackclient/identity/v3/domain.py +5 -5
- openstackclient/identity/v3/ec2creds.py +4 -4
- openstackclient/identity/v3/endpoint.py +7 -7
- openstackclient/identity/v3/endpoint_group.py +8 -10
- openstackclient/identity/v3/federation_protocol.py +5 -5
- openstackclient/identity/v3/group.py +8 -8
- openstackclient/identity/v3/identity_provider.py +5 -5
- openstackclient/identity/v3/implied_role.py +3 -3
- openstackclient/identity/v3/limit.py +5 -5
- openstackclient/identity/v3/mapping.py +5 -5
- openstackclient/identity/v3/policy.py +5 -5
- openstackclient/identity/v3/project.py +5 -5
- openstackclient/identity/v3/region.py +5 -5
- openstackclient/identity/v3/registered_limit.py +5 -5
- openstackclient/identity/v3/role.py +7 -7
- openstackclient/identity/v3/role_assignment.py +92 -140
- openstackclient/identity/v3/service.py +64 -34
- openstackclient/identity/v3/service_provider.py +4 -4
- openstackclient/identity/v3/tag.py +2 -2
- openstackclient/identity/v3/token.py +5 -5
- openstackclient/identity/v3/trust.py +3 -3
- openstackclient/identity/v3/user.py +144 -80
- openstackclient/image/client.py +4 -4
- openstackclient/image/v1/image.py +8 -9
- openstackclient/image/v2/cache.py +12 -10
- openstackclient/image/v2/metadef_objects.py +44 -0
- openstackclient/image/v2/metadef_resource_type_association.py +189 -0
- openstackclient/image/v2/task.py +1 -1
- openstackclient/network/common.py +6 -5
- openstackclient/network/utils.py +2 -2
- openstackclient/network/v2/address_group.py +6 -6
- openstackclient/network/v2/address_scope.py +5 -5
- openstackclient/network/v2/default_security_group_rule.py +1 -1
- openstackclient/network/v2/floating_ip.py +8 -10
- openstackclient/network/v2/floating_ip_pool.py +6 -15
- openstackclient/network/v2/floating_ip_port_forwarding.py +5 -13
- openstackclient/network/v2/ip_availability.py +2 -2
- openstackclient/network/v2/l3_conntrack_helper.py +5 -5
- openstackclient/network/v2/network.py +8 -8
- openstackclient/network/v2/network_agent.py +8 -8
- openstackclient/network/v2/network_auto_allocated_topology.py +2 -2
- openstackclient/network/v2/network_flavor.py +6 -8
- openstackclient/network/v2/network_flavor_profile.py +4 -4
- openstackclient/network/v2/network_meter.py +3 -3
- openstackclient/network/v2/network_meter_rule.py +3 -3
- openstackclient/network/v2/network_qos_policy.py +5 -5
- openstackclient/network/v2/network_qos_rule.py +9 -9
- openstackclient/network/v2/network_qos_rule_type.py +1 -1
- openstackclient/network/v2/network_rbac.py +5 -5
- openstackclient/network/v2/network_segment.py +5 -5
- openstackclient/network/v2/network_segment_range.py +7 -7
- openstackclient/network/v2/network_trunk.py +7 -7
- openstackclient/network/v2/port.py +26 -12
- openstackclient/network/v2/router.py +403 -54
- openstackclient/network/v2/security_group.py +18 -14
- openstackclient/network/v2/security_group_rule.py +18 -15
- openstackclient/network/v2/subnet.py +15 -8
- openstackclient/network/v2/subnet_pool.py +6 -6
- openstackclient/object/v1/account.py +2 -2
- openstackclient/object/v1/container.py +7 -7
- openstackclient/object/v1/object.py +7 -7
- openstackclient/releasenotes/notes/volume-backup-created-at-list-b49ec893ae1f6b0d.yaml +4 -0
- openstackclient/shell.py +4 -6
- openstackclient/tests/functional/base.py +1 -1
- openstackclient/tests/functional/common/test_extension.py +1 -1
- openstackclient/tests/functional/common/test_help.py +2 -2
- openstackclient/tests/functional/common/test_module.py +1 -1
- openstackclient/tests/functional/common/test_quota.py +43 -61
- openstackclient/tests/functional/compute/v2/common.py +2 -2
- openstackclient/tests/functional/compute/v2/test_flavor.py +2 -2
- openstackclient/tests/functional/compute/v2/test_keypair.py +1 -1
- openstackclient/tests/functional/compute/v2/test_server.py +5 -5
- openstackclient/tests/functional/compute/v2/test_server_event.py +1 -1
- openstackclient/tests/functional/identity/v2/common.py +3 -3
- openstackclient/tests/functional/identity/v3/common.py +12 -4
- openstackclient/tests/functional/identity/v3/test_application_credential.py +6 -12
- openstackclient/tests/functional/identity/v3/test_domain.py +1 -3
- openstackclient/tests/functional/identity/v3/test_endpoint.py +1 -1
- openstackclient/tests/functional/identity/v3/test_idp.py +1 -1
- openstackclient/tests/functional/identity/v3/test_region.py +1 -3
- openstackclient/tests/functional/identity/v3/test_role.py +2 -2
- openstackclient/tests/functional/identity/v3/test_role_assignment.py +210 -0
- openstackclient/tests/functional/identity/v3/test_service.py +1 -3
- openstackclient/tests/functional/identity/v3/test_service_provider.py +1 -3
- openstackclient/tests/functional/image/base.py +1 -1
- openstackclient/tests/functional/image/v2/test_image.py +1 -1
- openstackclient/tests/functional/image/v2/test_info.py +1 -1
- openstackclient/tests/functional/network/v2/common.py +4 -6
- openstackclient/tests/functional/network/v2/test_network.py +5 -3
- openstackclient/tests/functional/network/v2/test_network_agent.py +7 -5
- openstackclient/tests/functional/network/v2/test_network_qos_rule.py +4 -4
- openstackclient/tests/functional/network/v2/test_port.py +11 -7
- openstackclient/tests/functional/network/v2/test_router.py +2 -2
- openstackclient/tests/functional/object/v1/common.py +1 -1
- openstackclient/tests/functional/object/v1/test_container.py +3 -3
- openstackclient/tests/functional/object/v1/test_object.py +9 -13
- openstackclient/tests/functional/volume/base.py +1 -1
- openstackclient/tests/functional/volume/v1/test_service.py +1 -1
- openstackclient/tests/functional/volume/v1/test_snapshot.py +2 -2
- openstackclient/tests/functional/volume/v1/test_transfer_request.py +2 -2
- openstackclient/tests/functional/volume/v1/test_volume_type.py +1 -1
- openstackclient/tests/functional/volume/v2/test_service.py +2 -2
- openstackclient/tests/functional/volume/v2/test_volume_backup.py +2 -2
- openstackclient/tests/functional/volume/v2/test_volume_snapshot.py +2 -2
- openstackclient/tests/functional/volume/v2/test_volume_type.py +1 -1
- openstackclient/tests/functional/volume/v3/test_volume_snapshot.py +2 -2
- openstackclient/tests/functional/volume/v3/test_volume_type.py +1 -1
- openstackclient/tests/unit/api/fakes.py +1 -1
- openstackclient/tests/unit/api/test_api.py +2 -2
- openstackclient/tests/unit/api/test_compute_v2.py +522 -707
- openstackclient/tests/unit/api/test_image_v1.py +1 -1
- openstackclient/tests/unit/api/test_image_v2.py +1 -1
- openstackclient/tests/unit/api/test_object_store_v1.py +4 -4
- openstackclient/tests/unit/common/test_limits.py +73 -35
- openstackclient/tests/unit/common/test_logs.py +2 -2
- openstackclient/tests/unit/common/test_module.py +4 -2
- openstackclient/tests/unit/common/test_project_cleanup.py +31 -6
- openstackclient/tests/unit/common/test_quota.py +490 -630
- openstackclient/tests/unit/compute/v2/fakes.py +37 -286
- openstackclient/tests/unit/compute/v2/test_agent.py +189 -147
- openstackclient/tests/unit/compute/v2/test_aggregate.py +87 -57
- openstackclient/tests/unit/compute/v2/test_console.py +4 -5
- openstackclient/tests/unit/compute/v2/test_flavor.py +59 -68
- openstackclient/tests/unit/compute/v2/test_host.py +83 -54
- openstackclient/tests/unit/compute/v2/test_hypervisor.py +57 -34
- openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +2 -2
- openstackclient/tests/unit/compute/v2/test_keypair.py +65 -50
- openstackclient/tests/unit/compute/v2/test_server.py +2850 -2453
- openstackclient/tests/unit/compute/v2/test_server_backup.py +1 -1
- openstackclient/tests/unit/compute/v2/test_server_event.py +14 -39
- openstackclient/tests/unit/compute/v2/test_server_group.py +28 -29
- openstackclient/tests/unit/compute/v2/test_server_migration.py +43 -68
- openstackclient/tests/unit/compute/v2/test_server_volume.py +17 -34
- openstackclient/tests/unit/compute/v2/test_service.py +34 -52
- openstackclient/tests/unit/compute/v2/test_usage.py +4 -4
- openstackclient/tests/unit/fakes.py +12 -12
- openstackclient/tests/unit/identity/v2_0/fakes.py +27 -10
- openstackclient/tests/unit/identity/v2_0/test_catalog.py +3 -3
- openstackclient/tests/unit/identity/v2_0/test_endpoint.py +7 -7
- openstackclient/tests/unit/identity/v2_0/test_project.py +8 -8
- openstackclient/tests/unit/identity/v2_0/test_role.py +10 -10
- openstackclient/tests/unit/identity/v2_0/test_role_assignment.py +4 -4
- openstackclient/tests/unit/identity/v2_0/test_service.py +6 -6
- openstackclient/tests/unit/identity/v2_0/test_token.py +4 -4
- openstackclient/tests/unit/identity/v2_0/test_user.py +8 -8
- openstackclient/tests/unit/identity/v3/fakes.py +59 -20
- openstackclient/tests/unit/identity/v3/test_access_rule.py +5 -5
- openstackclient/tests/unit/identity/v3/test_application_credential.py +207 -230
- openstackclient/tests/unit/identity/v3/test_catalog.py +3 -3
- openstackclient/tests/unit/identity/v3/test_consumer.py +7 -8
- openstackclient/tests/unit/identity/v3/test_credential.py +9 -9
- openstackclient/tests/unit/identity/v3/test_domain.py +8 -8
- openstackclient/tests/unit/identity/v3/test_endpoint.py +13 -13
- openstackclient/tests/unit/identity/v3/test_endpoint_group.py +12 -14
- openstackclient/tests/unit/identity/v3/test_group.py +12 -12
- openstackclient/tests/unit/identity/v3/test_identity_provider.py +8 -8
- openstackclient/tests/unit/identity/v3/test_implied_role.py +5 -5
- openstackclient/tests/unit/identity/v3/test_limit.py +7 -7
- openstackclient/tests/unit/identity/v3/test_mappings.py +7 -7
- openstackclient/tests/unit/identity/v3/test_oauth.py +5 -5
- openstackclient/tests/unit/identity/v3/test_project.py +16 -16
- openstackclient/tests/unit/identity/v3/test_protocol.py +7 -7
- openstackclient/tests/unit/identity/v3/test_region.py +7 -7
- openstackclient/tests/unit/identity/v3/test_registered_limit.py +12 -13
- openstackclient/tests/unit/identity/v3/test_role.py +13 -13
- openstackclient/tests/unit/identity/v3/test_role_assignment.py +410 -331
- openstackclient/tests/unit/identity/v3/test_service.py +90 -94
- openstackclient/tests/unit/identity/v3/test_service_provider.py +7 -7
- openstackclient/tests/unit/identity/v3/test_token.py +4 -4
- openstackclient/tests/unit/identity/v3/test_trust.py +9 -9
- openstackclient/tests/unit/identity/v3/test_unscoped_saml.py +4 -4
- openstackclient/tests/unit/identity/v3/test_user.py +299 -327
- openstackclient/tests/unit/image/v1/test_image.py +6 -6
- openstackclient/tests/unit/image/v2/fakes.py +46 -9
- openstackclient/tests/unit/image/v2/test_cache.py +2 -2
- openstackclient/tests/unit/image/v2/test_image.py +3 -3
- openstackclient/tests/unit/image/v2/test_metadef_objects.py +62 -0
- openstackclient/tests/unit/image/v2/test_metadef_resource_type_association.py +131 -0
- openstackclient/tests/unit/integ/base.py +1 -1
- openstackclient/tests/unit/integ/cli/test_project.py +4 -4
- openstackclient/tests/unit/integ/cli/test_shell.py +7 -7
- openstackclient/tests/unit/network/test_common.py +12 -21
- openstackclient/tests/unit/network/v2/fakes.py +64 -130
- openstackclient/tests/unit/network/v2/test_address_group.py +15 -15
- openstackclient/tests/unit/network/v2/test_address_scope.py +13 -13
- openstackclient/tests/unit/network/v2/test_default_security_group_rule.py +49 -27
- openstackclient/tests/unit/network/v2/test_floating_ip_compute.py +40 -38
- openstackclient/tests/unit/network/v2/test_floating_ip_network.py +15 -15
- openstackclient/tests/unit/network/v2/test_floating_ip_pool_compute.py +4 -7
- openstackclient/tests/unit/network/v2/test_floating_ip_pool_network.py +3 -5
- openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py +11 -11
- openstackclient/tests/unit/network/v2/test_ip_availability.py +6 -6
- openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +11 -21
- openstackclient/tests/unit/network/v2/test_local_ip.py +7 -7
- openstackclient/tests/unit/network/v2/test_local_ip_association.py +3 -5
- openstackclient/tests/unit/network/v2/test_ndp_proxy.py +13 -13
- openstackclient/tests/unit/network/v2/test_network.py +23 -28
- openstackclient/tests/unit/network/v2/test_network_agent.py +17 -21
- openstackclient/tests/unit/network/v2/test_network_auto_allocated_topology.py +8 -8
- openstackclient/tests/unit/network/v2/test_network_compute.py +66 -65
- openstackclient/tests/unit/network/v2/test_network_flavor.py +17 -19
- openstackclient/tests/unit/network/v2/test_network_flavor_profile.py +13 -13
- openstackclient/tests/unit/network/v2/test_network_meter.py +11 -11
- openstackclient/tests/unit/network/v2/test_network_meter_rule.py +11 -11
- openstackclient/tests/unit/network/v2/test_network_qos_policy.py +11 -21
- openstackclient/tests/unit/network/v2/test_network_qos_rule.py +51 -77
- openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +5 -9
- openstackclient/tests/unit/network/v2/test_network_rbac.py +12 -12
- openstackclient/tests/unit/network/v2/test_network_segment.py +11 -15
- openstackclient/tests/unit/network/v2/test_network_segment_range.py +11 -13
- openstackclient/tests/unit/network/v2/test_network_service_provider.py +3 -5
- openstackclient/tests/unit/network/v2/test_network_trunk.py +11 -11
- openstackclient/tests/unit/network/v2/test_port.py +22 -25
- openstackclient/tests/unit/network/v2/test_router.py +721 -51
- openstackclient/tests/unit/network/v2/test_security_group_compute.py +65 -49
- openstackclient/tests/unit/network/v2/test_security_group_network.py +15 -15
- openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py +57 -45
- openstackclient/tests/unit/network/v2/test_security_group_rule_network.py +11 -19
- openstackclient/tests/unit/network/v2/test_subnet.py +29 -25
- openstackclient/tests/unit/network/v2/test_subnet_pool.py +15 -15
- openstackclient/tests/unit/object/v1/fakes.py +1 -1
- openstackclient/tests/unit/object/v1/test_container.py +5 -5
- openstackclient/tests/unit/object/v1/test_container_all.py +6 -6
- openstackclient/tests/unit/object/v1/test_object.py +3 -3
- openstackclient/tests/unit/object/v1/test_object_all.py +5 -5
- openstackclient/tests/unit/test_shell.py +5 -5
- openstackclient/tests/unit/utils.py +4 -1
- openstackclient/tests/unit/volume/test_find_resource.py +2 -2
- openstackclient/tests/unit/volume/v1/fakes.py +5 -6
- openstackclient/tests/unit/volume/v1/test_volume.py +5 -4
- openstackclient/tests/unit/volume/v2/fakes.py +39 -259
- openstackclient/tests/unit/volume/v2/test_consistency_group_snapshot.py +5 -5
- openstackclient/tests/unit/volume/v2/test_qos_specs.py +9 -9
- openstackclient/tests/unit/volume/v2/test_volume.py +21 -87
- openstackclient/tests/unit/volume/v2/test_volume_backup.py +10 -368
- openstackclient/tests/unit/volume/v2/test_volume_snapshot.py +1 -1
- openstackclient/tests/unit/volume/v2/test_volume_transfer_request.py +0 -44
- openstackclient/tests/unit/volume/v2/test_volume_type.py +6 -87
- openstackclient/tests/unit/volume/v3/fakes.py +505 -22
- openstackclient/tests/unit/volume/v3/test_block_storage_cleanup.py +2 -3
- openstackclient/tests/unit/volume/v3/test_block_storage_cluster.py +10 -11
- openstackclient/tests/unit/volume/v3/test_block_storage_log_level.py +10 -6
- openstackclient/tests/unit/volume/v3/test_block_storage_manage.py +25 -17
- openstackclient/tests/unit/volume/v3/test_block_storage_resource_filter.py +6 -32
- openstackclient/tests/unit/volume/v3/test_service.py +271 -0
- openstackclient/tests/unit/volume/v3/test_volume.py +2177 -33
- openstackclient/tests/unit/volume/v3/test_volume_attachment.py +48 -52
- openstackclient/tests/unit/volume/v3/test_volume_backup.py +892 -0
- openstackclient/tests/unit/volume/v3/test_volume_group.py +19 -20
- openstackclient/tests/unit/volume/v3/test_volume_group_snapshot.py +14 -34
- openstackclient/tests/unit/volume/v3/test_volume_group_type.py +13 -16
- openstackclient/tests/unit/volume/v3/test_volume_message.py +10 -11
- openstackclient/tests/unit/volume/v3/test_volume_snapshot.py +161 -0
- openstackclient/tests/unit/volume/v3/test_volume_transfer_request.py +425 -0
- openstackclient/tests/unit/volume/v3/test_volume_type.py +1109 -0
- openstackclient/volume/v1/qos_specs.py +7 -7
- openstackclient/volume/v1/service.py +2 -2
- openstackclient/volume/v1/volume.py +12 -12
- openstackclient/volume/v1/volume_backup.py +7 -7
- openstackclient/volume/v1/volume_snapshot.py +8 -8
- openstackclient/volume/v1/volume_transfer_request.py +5 -5
- openstackclient/volume/v1/volume_type.py +7 -7
- openstackclient/volume/v2/backup_record.py +2 -2
- openstackclient/volume/v2/consistency_group.py +7 -9
- openstackclient/volume/v2/consistency_group_snapshot.py +4 -12
- openstackclient/volume/v2/qos_specs.py +7 -7
- openstackclient/volume/v2/service.py +2 -2
- openstackclient/volume/v2/volume.py +80 -80
- openstackclient/volume/v2/volume_backend.py +2 -2
- openstackclient/volume/v2/volume_backup.py +9 -217
- openstackclient/volume/v2/volume_host.py +2 -2
- openstackclient/volume/v2/volume_snapshot.py +8 -8
- openstackclient/volume/v2/volume_transfer_request.py +5 -37
- openstackclient/volume/v2/volume_type.py +7 -89
- openstackclient/volume/v3/service.py +56 -0
- openstackclient/volume/v3/volume.py +971 -0
- openstackclient/volume/v3/volume_attachment.py +31 -29
- openstackclient/volume/v3/volume_backup.py +670 -0
- openstackclient/volume/v3/volume_message.py +1 -1
- openstackclient/volume/v3/volume_snapshot.py +97 -0
- openstackclient/volume/v3/volume_transfer_request.py +233 -0
- openstackclient/volume/v3/volume_type.py +967 -0
- {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.1.0.dist-info}/AUTHORS +6 -0
- {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.1.0.dist-info}/METADATA +4 -4
- python_openstackclient-7.1.0.dist-info/RECORD +503 -0
- {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.1.0.dist-info}/entry_points.txt +33 -27
- python_openstackclient-7.1.0.dist-info/pbr.json +1 -0
- python_openstackclient-6.6.1.dist-info/RECORD +0 -489
- python_openstackclient-6.6.1.dist-info/pbr.json +0 -1
- {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.1.0.dist-info}/LICENSE +0 -0
- {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.1.0.dist-info}/WHEEL +0 -0
- {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.1.0.dist-info}/top_level.txt +0 -0
|
@@ -35,11 +35,11 @@ class TestVolume(volume_fakes.TestVolumev1):
|
|
|
35
35
|
self.volumes_mock.reset_mock()
|
|
36
36
|
|
|
37
37
|
# Get a shortcut to the TenantManager Mock
|
|
38
|
-
self.projects_mock = self.
|
|
38
|
+
self.projects_mock = self.identity_client.tenants
|
|
39
39
|
self.projects_mock.reset_mock()
|
|
40
40
|
|
|
41
41
|
# Get a shortcut to the UserManager Mock
|
|
42
|
-
self.users_mock = self.
|
|
42
|
+
self.users_mock = self.identity_client.users
|
|
43
43
|
self.users_mock.reset_mock()
|
|
44
44
|
|
|
45
45
|
def setup_volumes_mock(self, count):
|
|
@@ -1425,7 +1425,8 @@ class TestColumns(TestVolume):
|
|
|
1425
1425
|
|
|
1426
1426
|
col = volume.AttachmentsColumn(_volume.attachments, {})
|
|
1427
1427
|
self.assertEqual(
|
|
1428
|
-
'Attached to
|
|
1428
|
+
f'Attached to {server_id} on {device} ',
|
|
1429
|
+
col.human_readable(),
|
|
1429
1430
|
)
|
|
1430
1431
|
self.assertEqual(_volume.attachments, col.machine_readable())
|
|
1431
1432
|
|
|
@@ -1440,7 +1441,7 @@ class TestColumns(TestVolume):
|
|
|
1440
1441
|
|
|
1441
1442
|
col = volume.AttachmentsColumn(_volume.attachments, server_cache)
|
|
1442
1443
|
self.assertEqual(
|
|
1443
|
-
'Attached to
|
|
1444
|
+
'Attached to {} on {} '.format('fake-server-name', device),
|
|
1444
1445
|
col.human_readable(),
|
|
1445
1446
|
)
|
|
1446
1447
|
self.assertEqual(_volume.attachments, col.machine_readable())
|
|
@@ -14,37 +14,25 @@
|
|
|
14
14
|
|
|
15
15
|
import copy
|
|
16
16
|
import random
|
|
17
|
+
import typing as ty
|
|
17
18
|
from unittest import mock
|
|
18
19
|
import uuid
|
|
19
20
|
|
|
20
21
|
# FIXME(stephenfin): We are using v3 resource versions despite being v2 fakes
|
|
21
22
|
from cinderclient import api_versions
|
|
23
|
+
from keystoneauth1 import discover
|
|
22
24
|
from openstack.block_storage.v2 import _proxy as block_storage_v2_proxy
|
|
23
|
-
from openstack.block_storage.
|
|
25
|
+
from openstack.block_storage.v2 import backup as _backup
|
|
24
26
|
from openstack.block_storage.v3 import capabilities as _capabilities
|
|
25
27
|
from openstack.block_storage.v3 import stats as _stats
|
|
26
28
|
from openstack.block_storage.v3 import volume as _volume
|
|
27
29
|
from openstack.image.v2 import _proxy as image_v2_proxy
|
|
28
|
-
from osc_lib.cli import format_columns
|
|
29
30
|
|
|
30
31
|
from openstackclient.tests.unit import fakes
|
|
31
32
|
from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
|
|
32
33
|
from openstackclient.tests.unit import utils
|
|
33
34
|
|
|
34
35
|
|
|
35
|
-
QUOTA = {
|
|
36
|
-
"gigabytes": 1000,
|
|
37
|
-
"volumes": 11,
|
|
38
|
-
"snapshots": 10,
|
|
39
|
-
"backups": 10,
|
|
40
|
-
"backup_gigabytes": 1000,
|
|
41
|
-
"per_volume_gigabytes": -1,
|
|
42
|
-
"gigabytes_volume_type_backend": -1,
|
|
43
|
-
"volumes_volume_type_backend": -1,
|
|
44
|
-
"snapshots_volume_type_backend": -1,
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
|
|
48
36
|
class FakeVolumeClient:
|
|
49
37
|
def __init__(self, **kwargs):
|
|
50
38
|
self.auth_token = kwargs['token']
|
|
@@ -67,10 +55,6 @@ class FakeVolumeClient:
|
|
|
67
55
|
self.pools.resource_class = fakes.FakeResource(None, {})
|
|
68
56
|
self.qos_specs = mock.Mock()
|
|
69
57
|
self.qos_specs.resource_class = fakes.FakeResource(None, {})
|
|
70
|
-
self.quota_classes = mock.Mock()
|
|
71
|
-
self.quota_classes.resource_class = fakes.FakeResource(None, {})
|
|
72
|
-
self.quotas = mock.Mock()
|
|
73
|
-
self.quotas.resource_class = fakes.FakeResource(None, {})
|
|
74
58
|
self.restores = mock.Mock()
|
|
75
59
|
self.restores.resource_class = fakes.FakeResource(None, {})
|
|
76
60
|
self.services = mock.Mock()
|
|
@@ -106,16 +90,36 @@ class FakeClientMixin:
|
|
|
106
90
|
spec=block_storage_v2_proxy.Proxy,
|
|
107
91
|
)
|
|
108
92
|
self.volume_sdk_client = self.app.client_manager.sdk_connection.volume
|
|
93
|
+
self.set_volume_api_version() # default to the lowest
|
|
109
94
|
|
|
95
|
+
def set_volume_api_version(self, version: ty.Optional[str] = None):
|
|
96
|
+
"""Set a fake block storage API version.
|
|
110
97
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
98
|
+
:param version: The fake microversion to "support". This must be None
|
|
99
|
+
since cinder v2 didn't support microversions.
|
|
100
|
+
:returns: None
|
|
101
|
+
"""
|
|
102
|
+
assert version is None
|
|
114
103
|
|
|
115
|
-
self.
|
|
116
|
-
|
|
104
|
+
self.volume_client.api_version = None
|
|
105
|
+
|
|
106
|
+
self.volume_sdk_client.default_microversion = None
|
|
107
|
+
self.volume_sdk_client.get_endpoint_data.return_value = (
|
|
108
|
+
discover.EndpointData(
|
|
109
|
+
min_microversion=None,
|
|
110
|
+
max_microversion=None,
|
|
111
|
+
)
|
|
117
112
|
)
|
|
118
113
|
|
|
114
|
+
|
|
115
|
+
class TestVolume(
|
|
116
|
+
identity_fakes.FakeClientMixin,
|
|
117
|
+
FakeClientMixin,
|
|
118
|
+
utils.TestCommand,
|
|
119
|
+
):
|
|
120
|
+
def setUp(self):
|
|
121
|
+
super().setUp()
|
|
122
|
+
|
|
119
123
|
# avoid circular imports by defining this manually rather than using
|
|
120
124
|
# openstackclient.tests.unit.image.v2.fakes.FakeClientMixin
|
|
121
125
|
self.app.client_manager.image = mock.Mock(spec=image_v2_proxy.Proxy)
|
|
@@ -472,76 +476,34 @@ def get_volumes(volumes=None, count=2):
|
|
|
472
476
|
return mock.Mock(side_effect=volumes)
|
|
473
477
|
|
|
474
478
|
|
|
475
|
-
def get_volume_columns(volume=None):
|
|
476
|
-
"""Get the volume columns from a faked volume object.
|
|
477
|
-
|
|
478
|
-
:param volume:
|
|
479
|
-
A FakeResource objects faking volume
|
|
480
|
-
:return
|
|
481
|
-
A tuple which may include the following keys:
|
|
482
|
-
('id', 'name', 'description', 'status', 'size', 'volume_type',
|
|
483
|
-
'metadata', 'snapshot', 'availability_zone', 'attachments')
|
|
484
|
-
"""
|
|
485
|
-
if volume is not None:
|
|
486
|
-
return tuple(k for k in sorted(volume.keys()))
|
|
487
|
-
return tuple([])
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
def get_volume_data(volume=None):
|
|
491
|
-
"""Get the volume data from a faked volume object.
|
|
492
|
-
|
|
493
|
-
:param volume:
|
|
494
|
-
A FakeResource objects faking volume
|
|
495
|
-
:return
|
|
496
|
-
A tuple which may include the following values:
|
|
497
|
-
('ce26708d', 'fake_volume', 'fake description', 'available',
|
|
498
|
-
20, 'fake_lvmdriver-1', "Alpha='a', Beta='b', Gamma='g'",
|
|
499
|
-
1, 'nova', [{'device': '/dev/ice', 'server_id': '1233'}])
|
|
500
|
-
"""
|
|
501
|
-
data_list = []
|
|
502
|
-
if volume is not None:
|
|
503
|
-
for x in sorted(volume.keys()):
|
|
504
|
-
if x == 'tags':
|
|
505
|
-
# The 'tags' should be format_list
|
|
506
|
-
data_list.append(format_columns.ListColumn(volume.info.get(x)))
|
|
507
|
-
else:
|
|
508
|
-
data_list.append(volume.info.get(x))
|
|
509
|
-
return tuple(data_list)
|
|
510
|
-
|
|
511
|
-
|
|
512
479
|
def create_one_backup(attrs=None):
|
|
513
480
|
"""Create a fake backup.
|
|
514
481
|
|
|
515
482
|
:param dict attrs:
|
|
516
483
|
A dictionary with all attributes
|
|
517
|
-
:return:
|
|
518
|
-
|
|
484
|
+
:return: A fake
|
|
485
|
+
openstack.block_storage.v2.backup.Backup object
|
|
519
486
|
"""
|
|
520
487
|
attrs = attrs or {}
|
|
521
488
|
|
|
522
489
|
# Set default attributes.
|
|
523
490
|
backup_info = {
|
|
491
|
+
"availability_zone": 'zone' + uuid.uuid4().hex,
|
|
492
|
+
"container": 'container-' + uuid.uuid4().hex,
|
|
524
493
|
"created_at": 'time-' + uuid.uuid4().hex,
|
|
525
494
|
"data_timestamp": 'time-' + uuid.uuid4().hex,
|
|
526
|
-
"
|
|
527
|
-
"encryption_key_id": None,
|
|
495
|
+
"description": 'description-' + uuid.uuid4().hex,
|
|
528
496
|
"fail_reason": "Service not found for creating backup.",
|
|
529
497
|
"has_dependent_backups": False,
|
|
498
|
+
"id": 'backup-id-' + uuid.uuid4().hex,
|
|
530
499
|
"is_incremental": False,
|
|
531
|
-
"metadata": {},
|
|
532
|
-
"project_id": uuid.uuid4().hex,
|
|
533
|
-
"updated_at": 'time-' + uuid.uuid4().hex,
|
|
534
|
-
"user_id": uuid.uuid4().hex,
|
|
535
500
|
"name": 'backup-name-' + uuid.uuid4().hex,
|
|
536
|
-
"volume_id": 'volume-id-' + uuid.uuid4().hex,
|
|
537
|
-
"snapshot_id": 'snapshot-id' + uuid.uuid4().hex,
|
|
538
|
-
"description": 'description-' + uuid.uuid4().hex,
|
|
539
501
|
"object_count": None,
|
|
540
|
-
"container": 'container-' + uuid.uuid4().hex,
|
|
541
502
|
"size": random.randint(1, 20),
|
|
542
|
-
"
|
|
503
|
+
"snapshot_id": 'snapshot-id' + uuid.uuid4().hex,
|
|
543
504
|
"status": "error",
|
|
544
|
-
"
|
|
505
|
+
"updated_at": 'time-' + uuid.uuid4().hex,
|
|
506
|
+
"volume_id": 'volume-id-' + uuid.uuid4().hex,
|
|
545
507
|
}
|
|
546
508
|
|
|
547
509
|
# Overwrite default attributes.
|
|
@@ -558,8 +520,8 @@ def create_backups(attrs=None, count=2):
|
|
|
558
520
|
A dictionary with all attributes
|
|
559
521
|
:param int count:
|
|
560
522
|
The number of backups to fake
|
|
561
|
-
:return:
|
|
562
|
-
|
|
523
|
+
:return: A list of fake
|
|
524
|
+
openstack.block_storage.v2.backup.Backup objects
|
|
563
525
|
"""
|
|
564
526
|
backups = []
|
|
565
527
|
for i in range(0, count):
|
|
@@ -1012,185 +974,3 @@ def create_one_encryption_volume_type(attrs=None):
|
|
|
1012
974
|
info=copy.deepcopy(encryption_info), loaded=True
|
|
1013
975
|
)
|
|
1014
976
|
return encryption_type
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
def create_one_vol_quota(attrs=None):
|
|
1018
|
-
"""Create one quota"""
|
|
1019
|
-
attrs = attrs or {}
|
|
1020
|
-
|
|
1021
|
-
quota_attrs = {
|
|
1022
|
-
'id': 'project-id-' + uuid.uuid4().hex,
|
|
1023
|
-
'backups': 100,
|
|
1024
|
-
'backup_gigabytes': 100,
|
|
1025
|
-
'gigabytes': 10,
|
|
1026
|
-
'per_volume_gigabytes': 10,
|
|
1027
|
-
'snapshots': 0,
|
|
1028
|
-
'volumes': 10,
|
|
1029
|
-
}
|
|
1030
|
-
|
|
1031
|
-
quota_attrs.update(attrs)
|
|
1032
|
-
|
|
1033
|
-
quota = fakes.FakeResource(info=copy.deepcopy(quota_attrs), loaded=True)
|
|
1034
|
-
quota.project_id = quota_attrs['id']
|
|
1035
|
-
|
|
1036
|
-
return quota
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
def create_one_default_vol_quota(attrs=None):
|
|
1040
|
-
"""Create one quota"""
|
|
1041
|
-
attrs = attrs or {}
|
|
1042
|
-
|
|
1043
|
-
quota_attrs = {
|
|
1044
|
-
'id': 'project-id-' + uuid.uuid4().hex,
|
|
1045
|
-
'backups': 100,
|
|
1046
|
-
'backup_gigabytes': 100,
|
|
1047
|
-
'gigabytes': 100,
|
|
1048
|
-
'per_volume_gigabytes': 100,
|
|
1049
|
-
'snapshots': 100,
|
|
1050
|
-
'volumes': 100,
|
|
1051
|
-
}
|
|
1052
|
-
|
|
1053
|
-
quota_attrs.update(attrs)
|
|
1054
|
-
|
|
1055
|
-
quota = fakes.FakeResource(info=copy.deepcopy(quota_attrs), loaded=True)
|
|
1056
|
-
quota.project_id = quota_attrs['id']
|
|
1057
|
-
|
|
1058
|
-
return quota
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
def create_one_detailed_quota(attrs=None):
|
|
1062
|
-
"""Create one quota"""
|
|
1063
|
-
attrs = attrs or {}
|
|
1064
|
-
|
|
1065
|
-
quota_attrs = {
|
|
1066
|
-
'volumes': {'limit': 3, 'in_use': 1, 'reserved': 0},
|
|
1067
|
-
'per_volume_gigabytes': {'limit': -1, 'in_use': 0, 'reserved': 0},
|
|
1068
|
-
'snapshots': {'limit': 10, 'in_use': 0, 'reserved': 0},
|
|
1069
|
-
'gigabytes': {'limit': 1000, 'in_use': 5, 'reserved': 0},
|
|
1070
|
-
'backups': {'limit': 10, 'in_use': 0, 'reserved': 0},
|
|
1071
|
-
'backup_gigabytes': {'limit': 1000, 'in_use': 0, 'reserved': 0},
|
|
1072
|
-
'volumes_lvmdriver-1': {'limit': -1, 'in_use': 1, 'reserved': 0},
|
|
1073
|
-
'gigabytes_lvmdriver-1': {'limit': -1, 'in_use': 5, 'reserved': 0},
|
|
1074
|
-
'snapshots_lvmdriver-1': {'limit': -1, 'in_use': 0, 'reserved': 0},
|
|
1075
|
-
'volumes___DEFAULT__': {'limit': -1, 'in_use': 0, 'reserved': 0},
|
|
1076
|
-
'gigabytes___DEFAULT__': {'limit': -1, 'in_use': 0, 'reserved': 0},
|
|
1077
|
-
'snapshots___DEFAULT__': {'limit': -1, 'in_use': 0, 'reserved': 0},
|
|
1078
|
-
'groups': {'limit': 10, 'in_use': 0, 'reserved': 0},
|
|
1079
|
-
'id': uuid.uuid4().hex,
|
|
1080
|
-
}
|
|
1081
|
-
quota_attrs.update(attrs)
|
|
1082
|
-
|
|
1083
|
-
quota = fakes.FakeResource(info=copy.deepcopy(quota_attrs), loaded=True)
|
|
1084
|
-
|
|
1085
|
-
return quota
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
class FakeLimits(object):
|
|
1089
|
-
"""Fake limits"""
|
|
1090
|
-
|
|
1091
|
-
def __init__(self, absolute_attrs=None):
|
|
1092
|
-
self.absolute_limits_attrs = {
|
|
1093
|
-
'totalSnapshotsUsed': 1,
|
|
1094
|
-
'maxTotalBackups': 10,
|
|
1095
|
-
'maxTotalVolumeGigabytes': 1000,
|
|
1096
|
-
'maxTotalSnapshots': 10,
|
|
1097
|
-
'maxTotalBackupGigabytes': 1000,
|
|
1098
|
-
'totalBackupGigabytesUsed': 0,
|
|
1099
|
-
'maxTotalVolumes': 10,
|
|
1100
|
-
'totalVolumesUsed': 4,
|
|
1101
|
-
'totalBackupsUsed': 0,
|
|
1102
|
-
'totalGigabytesUsed': 35,
|
|
1103
|
-
}
|
|
1104
|
-
absolute_attrs = absolute_attrs or {}
|
|
1105
|
-
self.absolute_limits_attrs.update(absolute_attrs)
|
|
1106
|
-
|
|
1107
|
-
self.rate_limits_attrs = [
|
|
1108
|
-
{
|
|
1109
|
-
"uri": "*",
|
|
1110
|
-
"limit": [
|
|
1111
|
-
{
|
|
1112
|
-
"value": 10,
|
|
1113
|
-
"verb": "POST",
|
|
1114
|
-
"remaining": 2,
|
|
1115
|
-
"unit": "MINUTE",
|
|
1116
|
-
"next-available": "2011-12-15T22:42:45Z",
|
|
1117
|
-
},
|
|
1118
|
-
{
|
|
1119
|
-
"value": 10,
|
|
1120
|
-
"verb": "PUT",
|
|
1121
|
-
"remaining": 2,
|
|
1122
|
-
"unit": "MINUTE",
|
|
1123
|
-
"next-available": "2011-12-15T22:42:45Z",
|
|
1124
|
-
},
|
|
1125
|
-
{
|
|
1126
|
-
"value": 100,
|
|
1127
|
-
"verb": "DELETE",
|
|
1128
|
-
"remaining": 100,
|
|
1129
|
-
"unit": "MINUTE",
|
|
1130
|
-
"next-available": "2011-12-15T22:42:45Z",
|
|
1131
|
-
},
|
|
1132
|
-
],
|
|
1133
|
-
}
|
|
1134
|
-
]
|
|
1135
|
-
|
|
1136
|
-
@property
|
|
1137
|
-
def absolute(self):
|
|
1138
|
-
for name, value in self.absolute_limits_attrs.items():
|
|
1139
|
-
yield FakeAbsoluteLimit(name, value)
|
|
1140
|
-
|
|
1141
|
-
def absolute_limits(self):
|
|
1142
|
-
reference_data = []
|
|
1143
|
-
for name, value in self.absolute_limits_attrs.items():
|
|
1144
|
-
reference_data.append((name, value))
|
|
1145
|
-
return reference_data
|
|
1146
|
-
|
|
1147
|
-
@property
|
|
1148
|
-
def rate(self):
|
|
1149
|
-
for group in self.rate_limits_attrs:
|
|
1150
|
-
uri = group['uri']
|
|
1151
|
-
for rate in group['limit']:
|
|
1152
|
-
yield FakeRateLimit(
|
|
1153
|
-
rate['verb'],
|
|
1154
|
-
uri,
|
|
1155
|
-
rate['value'],
|
|
1156
|
-
rate['remaining'],
|
|
1157
|
-
rate['unit'],
|
|
1158
|
-
rate['next-available'],
|
|
1159
|
-
)
|
|
1160
|
-
|
|
1161
|
-
def rate_limits(self):
|
|
1162
|
-
reference_data = []
|
|
1163
|
-
for group in self.rate_limits_attrs:
|
|
1164
|
-
uri = group['uri']
|
|
1165
|
-
for rate in group['limit']:
|
|
1166
|
-
reference_data.append(
|
|
1167
|
-
(
|
|
1168
|
-
rate['verb'],
|
|
1169
|
-
uri,
|
|
1170
|
-
rate['value'],
|
|
1171
|
-
rate['remaining'],
|
|
1172
|
-
rate['unit'],
|
|
1173
|
-
rate['next-available'],
|
|
1174
|
-
)
|
|
1175
|
-
)
|
|
1176
|
-
return reference_data
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
class FakeAbsoluteLimit(object):
|
|
1180
|
-
"""Data model that represents an absolute limit."""
|
|
1181
|
-
|
|
1182
|
-
def __init__(self, name, value):
|
|
1183
|
-
self.name = name
|
|
1184
|
-
self.value = value
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
class FakeRateLimit(object):
|
|
1188
|
-
"""Data model that represents a flattened view of a single rate limit."""
|
|
1189
|
-
|
|
1190
|
-
def __init__(self, verb, uri, value, remain, unit, next_available):
|
|
1191
|
-
self.verb = verb
|
|
1192
|
-
self.uri = uri
|
|
1193
|
-
self.value = value
|
|
1194
|
-
self.remain = remain
|
|
1195
|
-
self.unit = unit
|
|
1196
|
-
self.next_available = next_available
|
|
@@ -20,7 +20,7 @@ from openstackclient.volume.v2 import consistency_group_snapshot
|
|
|
20
20
|
|
|
21
21
|
class TestConsistencyGroupSnapshot(volume_fakes.TestVolume):
|
|
22
22
|
def setUp(self):
|
|
23
|
-
super(
|
|
23
|
+
super().setUp()
|
|
24
24
|
|
|
25
25
|
# Get a shortcut to the TransferManager Mock
|
|
26
26
|
self.cgsnapshots_mock = self.volume_client.cgsnapshots
|
|
@@ -53,7 +53,7 @@ class TestConsistencyGroupSnapshotCreate(TestConsistencyGroupSnapshot):
|
|
|
53
53
|
)
|
|
54
54
|
|
|
55
55
|
def setUp(self):
|
|
56
|
-
super(
|
|
56
|
+
super().setUp()
|
|
57
57
|
self.cgsnapshots_mock.create.return_value = (
|
|
58
58
|
self._consistency_group_snapshot
|
|
59
59
|
)
|
|
@@ -126,7 +126,7 @@ class TestConsistencyGroupSnapshotDelete(TestConsistencyGroupSnapshot):
|
|
|
126
126
|
)
|
|
127
127
|
|
|
128
128
|
def setUp(self):
|
|
129
|
-
super(
|
|
129
|
+
super().setUp()
|
|
130
130
|
|
|
131
131
|
self.cgsnapshots_mock.get = (
|
|
132
132
|
volume_fakes.get_consistency_group_snapshots(
|
|
@@ -217,7 +217,7 @@ class TestConsistencyGroupSnapshotList(TestConsistencyGroupSnapshot):
|
|
|
217
217
|
)
|
|
218
218
|
|
|
219
219
|
def setUp(self):
|
|
220
|
-
super(
|
|
220
|
+
super().setUp()
|
|
221
221
|
|
|
222
222
|
self.cgsnapshots_mock.list.return_value = (
|
|
223
223
|
self.consistency_group_snapshots
|
|
@@ -332,7 +332,7 @@ class TestConsistencyGroupSnapshotShow(TestConsistencyGroupSnapshot):
|
|
|
332
332
|
)
|
|
333
333
|
|
|
334
334
|
def setUp(self):
|
|
335
|
-
super(
|
|
335
|
+
super().setUp()
|
|
336
336
|
|
|
337
337
|
self.cgsnapshots_mock.get.return_value = (
|
|
338
338
|
self._consistency_group_snapshot
|
|
@@ -27,7 +27,7 @@ from openstackclient.volume.v2 import qos_specs
|
|
|
27
27
|
|
|
28
28
|
class TestQos(volume_fakes.TestVolume):
|
|
29
29
|
def setUp(self):
|
|
30
|
-
super(
|
|
30
|
+
super().setUp()
|
|
31
31
|
|
|
32
32
|
self.qos_mock = self.volume_client.qos_specs
|
|
33
33
|
self.qos_mock.reset_mock()
|
|
@@ -41,7 +41,7 @@ class TestQosAssociate(TestQos):
|
|
|
41
41
|
qos_spec = volume_fakes.create_one_qos()
|
|
42
42
|
|
|
43
43
|
def setUp(self):
|
|
44
|
-
super(
|
|
44
|
+
super().setUp()
|
|
45
45
|
|
|
46
46
|
self.qos_mock.get.return_value = self.qos_spec
|
|
47
47
|
self.types_mock.get.return_value = self.volume_type
|
|
@@ -68,7 +68,7 @@ class TestQosCreate(TestQos):
|
|
|
68
68
|
columns = ('consumer', 'id', 'name', 'properties')
|
|
69
69
|
|
|
70
70
|
def setUp(self):
|
|
71
|
-
super(
|
|
71
|
+
super().setUp()
|
|
72
72
|
|
|
73
73
|
self.new_qos_spec = volume_fakes.create_one_qos()
|
|
74
74
|
self.qos_mock.create.return_value = self.new_qos_spec
|
|
@@ -158,7 +158,7 @@ class TestQosDelete(TestQos):
|
|
|
158
158
|
qos_specs = volume_fakes.create_qoses(count=2)
|
|
159
159
|
|
|
160
160
|
def setUp(self):
|
|
161
|
-
super(
|
|
161
|
+
super().setUp()
|
|
162
162
|
|
|
163
163
|
self.qos_mock.get = volume_fakes.get_qoses(self.qos_specs)
|
|
164
164
|
# Get the command object to test
|
|
@@ -238,7 +238,7 @@ class TestQosDisassociate(TestQos):
|
|
|
238
238
|
qos_spec = volume_fakes.create_one_qos()
|
|
239
239
|
|
|
240
240
|
def setUp(self):
|
|
241
|
-
super(
|
|
241
|
+
super().setUp()
|
|
242
242
|
|
|
243
243
|
self.qos_mock.get.return_value = self.qos_spec
|
|
244
244
|
self.types_mock.get.return_value = self.volume_type
|
|
@@ -302,7 +302,7 @@ class TestQosList(TestQos):
|
|
|
302
302
|
)
|
|
303
303
|
|
|
304
304
|
def setUp(self):
|
|
305
|
-
super(
|
|
305
|
+
super().setUp()
|
|
306
306
|
|
|
307
307
|
self.qos_mock.list.return_value = self.qos_specs
|
|
308
308
|
self.qos_mock.get_associations.return_value = [self.qos_association]
|
|
@@ -354,7 +354,7 @@ class TestQosSet(TestQos):
|
|
|
354
354
|
qos_spec = volume_fakes.create_one_qos()
|
|
355
355
|
|
|
356
356
|
def setUp(self):
|
|
357
|
-
super(
|
|
357
|
+
super().setUp()
|
|
358
358
|
|
|
359
359
|
self.qos_mock.get.return_value = self.qos_spec
|
|
360
360
|
# Get the command object to test
|
|
@@ -403,7 +403,7 @@ class TestQosShow(TestQos):
|
|
|
403
403
|
)
|
|
404
404
|
|
|
405
405
|
def setUp(self):
|
|
406
|
-
super(
|
|
406
|
+
super().setUp()
|
|
407
407
|
|
|
408
408
|
self.qos_mock.get.return_value = self.qos_spec
|
|
409
409
|
self.qos_mock.get_associations.return_value = [self.qos_association]
|
|
@@ -428,7 +428,7 @@ class TestQosUnset(TestQos):
|
|
|
428
428
|
qos_spec = volume_fakes.create_one_qos()
|
|
429
429
|
|
|
430
430
|
def setUp(self):
|
|
431
|
-
super(
|
|
431
|
+
super().setUp()
|
|
432
432
|
|
|
433
433
|
self.qos_mock.get.return_value = self.qos_spec
|
|
434
434
|
# Get the command object to test
|