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
|
@@ -17,7 +17,6 @@ from unittest import mock
|
|
|
17
17
|
from unittest.mock import call
|
|
18
18
|
|
|
19
19
|
from openstack import exceptions as sdk_exceptions
|
|
20
|
-
from openstack import utils as sdk_utils
|
|
21
20
|
from osc_lib.cli import format_columns
|
|
22
21
|
from osc_lib import exceptions
|
|
23
22
|
|
|
@@ -58,7 +57,7 @@ class TestAggregate(compute_fakes.TestComputev2):
|
|
|
58
57
|
|
|
59
58
|
class TestAggregateAddHost(TestAggregate):
|
|
60
59
|
def setUp(self):
|
|
61
|
-
super(
|
|
60
|
+
super().setUp()
|
|
62
61
|
|
|
63
62
|
self.compute_sdk_client.find_aggregate.return_value = self.fake_ag
|
|
64
63
|
self.compute_sdk_client.add_host_to_aggregate.return_value = (
|
|
@@ -89,7 +88,7 @@ class TestAggregateAddHost(TestAggregate):
|
|
|
89
88
|
|
|
90
89
|
class TestAggregateCreate(TestAggregate):
|
|
91
90
|
def setUp(self):
|
|
92
|
-
super(
|
|
91
|
+
super().setUp()
|
|
93
92
|
|
|
94
93
|
self.compute_sdk_client.create_aggregate.return_value = self.fake_ag
|
|
95
94
|
self.compute_sdk_client.set_aggregate_metadata.return_value = (
|
|
@@ -159,7 +158,7 @@ class TestAggregateDelete(TestAggregate):
|
|
|
159
158
|
fake_ags = compute_fakes.create_aggregates(count=2)
|
|
160
159
|
|
|
161
160
|
def setUp(self):
|
|
162
|
-
super(
|
|
161
|
+
super().setUp()
|
|
163
162
|
|
|
164
163
|
self.compute_sdk_client.find_aggregate = compute_fakes.get_aggregates(
|
|
165
164
|
self.fake_ags
|
|
@@ -228,58 +227,61 @@ class TestAggregateDelete(TestAggregate):
|
|
|
228
227
|
|
|
229
228
|
|
|
230
229
|
class TestAggregateList(TestAggregate):
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
"Name",
|
|
234
|
-
"Availability Zone",
|
|
235
|
-
)
|
|
230
|
+
def setUp(self):
|
|
231
|
+
super().setUp()
|
|
236
232
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
"Name",
|
|
240
|
-
"Availability Zone",
|
|
241
|
-
"Properties",
|
|
242
|
-
"Hosts",
|
|
243
|
-
)
|
|
233
|
+
self.compute_sdk_client.aggregates.return_value = [self.fake_ag]
|
|
234
|
+
self.cmd = aggregate.ListAggregate(self.app, None)
|
|
244
235
|
|
|
245
|
-
|
|
246
|
-
(
|
|
247
|
-
TestAggregate.fake_ag.id,
|
|
248
|
-
TestAggregate.fake_ag.name,
|
|
249
|
-
TestAggregate.fake_ag.availability_zone,
|
|
250
|
-
),
|
|
251
|
-
)
|
|
236
|
+
def test_aggregate_list(self):
|
|
237
|
+
self.set_compute_api_version('2.41')
|
|
252
238
|
|
|
253
|
-
|
|
254
|
-
(
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
239
|
+
parsed_args = self.check_parser(self.cmd, [], [])
|
|
240
|
+
columns, data = self.cmd.take_action(parsed_args)
|
|
241
|
+
|
|
242
|
+
expected_columns = (
|
|
243
|
+
"ID",
|
|
244
|
+
"UUID",
|
|
245
|
+
"Name",
|
|
246
|
+
"Availability Zone",
|
|
247
|
+
)
|
|
248
|
+
expected_data = (
|
|
249
|
+
(
|
|
250
|
+
self.fake_ag.id,
|
|
251
|
+
self.fake_ag.uuid,
|
|
252
|
+
self.fake_ag.name,
|
|
253
|
+
self.fake_ag.availability_zone,
|
|
264
254
|
),
|
|
265
|
-
|
|
266
|
-
),
|
|
267
|
-
)
|
|
255
|
+
)
|
|
268
256
|
|
|
269
|
-
|
|
270
|
-
|
|
257
|
+
self.assertEqual(expected_columns, columns)
|
|
258
|
+
self.assertCountEqual(expected_data, tuple(data))
|
|
271
259
|
|
|
272
|
-
|
|
273
|
-
self.
|
|
260
|
+
def test_aggregate_list_pre_v241(self):
|
|
261
|
+
self.set_compute_api_version('2.40')
|
|
274
262
|
|
|
275
|
-
def test_aggregate_list(self):
|
|
276
263
|
parsed_args = self.check_parser(self.cmd, [], [])
|
|
277
264
|
columns, data = self.cmd.take_action(parsed_args)
|
|
278
265
|
|
|
279
|
-
|
|
280
|
-
|
|
266
|
+
expected_columns = (
|
|
267
|
+
"ID",
|
|
268
|
+
"Name",
|
|
269
|
+
"Availability Zone",
|
|
270
|
+
)
|
|
271
|
+
expected_data = (
|
|
272
|
+
(
|
|
273
|
+
self.fake_ag.id,
|
|
274
|
+
self.fake_ag.name,
|
|
275
|
+
self.fake_ag.availability_zone,
|
|
276
|
+
),
|
|
277
|
+
)
|
|
278
|
+
|
|
279
|
+
self.assertEqual(expected_columns, columns)
|
|
280
|
+
self.assertCountEqual(expected_data, tuple(data))
|
|
281
281
|
|
|
282
282
|
def test_aggregate_list_with_long(self):
|
|
283
|
+
self.set_compute_api_version('2.41')
|
|
284
|
+
|
|
283
285
|
arglist = [
|
|
284
286
|
'--long',
|
|
285
287
|
]
|
|
@@ -289,13 +291,38 @@ class TestAggregateList(TestAggregate):
|
|
|
289
291
|
parsed_args = self.check_parser(self.cmd, arglist, vertifylist)
|
|
290
292
|
columns, data = self.cmd.take_action(parsed_args)
|
|
291
293
|
|
|
292
|
-
|
|
293
|
-
|
|
294
|
+
expected_columns = (
|
|
295
|
+
"ID",
|
|
296
|
+
"UUID",
|
|
297
|
+
"Name",
|
|
298
|
+
"Availability Zone",
|
|
299
|
+
"Properties",
|
|
300
|
+
"Hosts",
|
|
301
|
+
)
|
|
302
|
+
expected_data = (
|
|
303
|
+
(
|
|
304
|
+
self.fake_ag.id,
|
|
305
|
+
self.fake_ag.uuid,
|
|
306
|
+
self.fake_ag.name,
|
|
307
|
+
self.fake_ag.availability_zone,
|
|
308
|
+
format_columns.DictColumn(
|
|
309
|
+
{
|
|
310
|
+
key: value
|
|
311
|
+
for key, value in self.fake_ag.metadata.items()
|
|
312
|
+
if key != 'availability_zone'
|
|
313
|
+
}
|
|
314
|
+
),
|
|
315
|
+
format_columns.ListColumn(self.fake_ag.hosts),
|
|
316
|
+
),
|
|
317
|
+
)
|
|
318
|
+
|
|
319
|
+
self.assertEqual(expected_columns, columns)
|
|
320
|
+
self.assertCountEqual(expected_data, tuple(data))
|
|
294
321
|
|
|
295
322
|
|
|
296
323
|
class TestAggregateRemoveHost(TestAggregate):
|
|
297
324
|
def setUp(self):
|
|
298
|
-
super(
|
|
325
|
+
super().setUp()
|
|
299
326
|
|
|
300
327
|
self.compute_sdk_client.find_aggregate.return_value = self.fake_ag
|
|
301
328
|
self.compute_sdk_client.remove_host_from_aggregate.return_value = (
|
|
@@ -326,7 +353,7 @@ class TestAggregateRemoveHost(TestAggregate):
|
|
|
326
353
|
|
|
327
354
|
class TestAggregateSet(TestAggregate):
|
|
328
355
|
def setUp(self):
|
|
329
|
-
super(
|
|
356
|
+
super().setUp()
|
|
330
357
|
|
|
331
358
|
self.compute_sdk_client.find_aggregate.return_value = self.fake_ag
|
|
332
359
|
self.cmd = aggregate.SetAggregate(self.app, None)
|
|
@@ -513,7 +540,7 @@ class TestAggregateShow(TestAggregate):
|
|
|
513
540
|
)
|
|
514
541
|
|
|
515
542
|
def setUp(self):
|
|
516
|
-
super(
|
|
543
|
+
super().setUp()
|
|
517
544
|
|
|
518
545
|
self.compute_sdk_client.find_aggregate.return_value = self.fake_ag
|
|
519
546
|
self.cmd = aggregate.ShowAggregate(self.app, None)
|
|
@@ -537,7 +564,7 @@ class TestAggregateShow(TestAggregate):
|
|
|
537
564
|
|
|
538
565
|
class TestAggregateUnset(TestAggregate):
|
|
539
566
|
def setUp(self):
|
|
540
|
-
super(
|
|
567
|
+
super().setUp()
|
|
541
568
|
|
|
542
569
|
self.compute_sdk_client.find_aggregate.return_value = self.fake_ag
|
|
543
570
|
self.cmd = aggregate.UnsetAggregate(self.app, None)
|
|
@@ -598,7 +625,7 @@ class TestAggregateCacheImage(TestAggregate):
|
|
|
598
625
|
images = image_fakes.create_images(count=2)
|
|
599
626
|
|
|
600
627
|
def setUp(self):
|
|
601
|
-
super(
|
|
628
|
+
super().setUp()
|
|
602
629
|
|
|
603
630
|
self.compute_sdk_client.find_aggregate.return_value = self.fake_ag
|
|
604
631
|
self.find_image_mock = mock.Mock(side_effect=self.images)
|
|
@@ -608,8 +635,9 @@ class TestAggregateCacheImage(TestAggregate):
|
|
|
608
635
|
|
|
609
636
|
self.cmd = aggregate.CacheImageForAggregate(self.app, None)
|
|
610
637
|
|
|
611
|
-
|
|
612
|
-
|
|
638
|
+
def test_aggregate_cache_pre_v281(self):
|
|
639
|
+
self.set_compute_api_version('2.80')
|
|
640
|
+
|
|
613
641
|
arglist = ['ag1', 'im1']
|
|
614
642
|
verifylist = [
|
|
615
643
|
('aggregate', 'ag1'),
|
|
@@ -620,8 +648,9 @@ class TestAggregateCacheImage(TestAggregate):
|
|
|
620
648
|
exceptions.CommandError, self.cmd.take_action, parsed_args
|
|
621
649
|
)
|
|
622
650
|
|
|
623
|
-
|
|
624
|
-
|
|
651
|
+
def test_aggregate_cache_add_single_image(self):
|
|
652
|
+
self.set_compute_api_version('2.81')
|
|
653
|
+
|
|
625
654
|
arglist = ['ag1', 'im1']
|
|
626
655
|
verifylist = [
|
|
627
656
|
('aggregate', 'ag1'),
|
|
@@ -636,8 +665,9 @@ class TestAggregateCacheImage(TestAggregate):
|
|
|
636
665
|
self.fake_ag.id, [self.images[0].id]
|
|
637
666
|
)
|
|
638
667
|
|
|
639
|
-
|
|
640
|
-
|
|
668
|
+
def test_aggregate_cache_add_multiple_images(self):
|
|
669
|
+
self.set_compute_api_version('2.81')
|
|
670
|
+
|
|
641
671
|
arglist = [
|
|
642
672
|
'ag1',
|
|
643
673
|
'im1',
|
|
@@ -21,11 +21,10 @@ from openstackclient.tests.unit import utils
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
class TestConsoleLog(compute_fakes.TestComputev2):
|
|
24
|
-
_server = compute_fakes.create_one_server()
|
|
25
|
-
|
|
26
24
|
def setUp(self):
|
|
27
|
-
super(
|
|
25
|
+
super().setUp()
|
|
28
26
|
|
|
27
|
+
self._server = compute_fakes.create_one_sdk_server()
|
|
29
28
|
self.compute_sdk_client.find_server.return_value = self._server
|
|
30
29
|
|
|
31
30
|
self.cmd = console.ShowConsoleLog(self.app, None)
|
|
@@ -77,10 +76,10 @@ class TestConsoleLog(compute_fakes.TestComputev2):
|
|
|
77
76
|
|
|
78
77
|
|
|
79
78
|
class TestConsoleUrlShow(compute_fakes.TestComputev2):
|
|
80
|
-
_server = compute_fakes.
|
|
79
|
+
_server = compute_fakes.create_one_sdk_server()
|
|
81
80
|
|
|
82
81
|
def setUp(self):
|
|
83
|
-
super(
|
|
82
|
+
super().setUp()
|
|
84
83
|
self.compute_sdk_client.find_server.return_value = self._server
|
|
85
84
|
fake_console_data = {
|
|
86
85
|
'url': 'http://localhost',
|
|
@@ -16,7 +16,6 @@ from unittest import mock
|
|
|
16
16
|
|
|
17
17
|
from openstack.compute.v2 import flavor as _flavor
|
|
18
18
|
from openstack import exceptions as sdk_exceptions
|
|
19
|
-
from openstack import utils as sdk_utils
|
|
20
19
|
from osc_lib.cli import format_columns
|
|
21
20
|
from osc_lib import exceptions
|
|
22
21
|
|
|
@@ -28,9 +27,9 @@ from openstackclient.tests.unit import utils as tests_utils
|
|
|
28
27
|
|
|
29
28
|
class TestFlavor(compute_fakes.TestComputev2):
|
|
30
29
|
def setUp(self):
|
|
31
|
-
super(
|
|
30
|
+
super().setUp()
|
|
32
31
|
|
|
33
|
-
self.projects_mock = self.
|
|
32
|
+
self.projects_mock = self.identity_client.projects
|
|
34
33
|
self.projects_mock.reset_mock()
|
|
35
34
|
|
|
36
35
|
|
|
@@ -83,7 +82,7 @@ class TestFlavorCreate(TestFlavor):
|
|
|
83
82
|
)
|
|
84
83
|
|
|
85
84
|
def setUp(self):
|
|
86
|
-
super(
|
|
85
|
+
super().setUp()
|
|
87
86
|
|
|
88
87
|
# Return a project
|
|
89
88
|
self.projects_mock.get.return_value = self.project
|
|
@@ -118,6 +117,8 @@ class TestFlavorCreate(TestFlavor):
|
|
|
118
117
|
self.assertCountEqual(self.data, data)
|
|
119
118
|
|
|
120
119
|
def test_flavor_create_all_options(self):
|
|
120
|
+
self.set_compute_api_version('2.55')
|
|
121
|
+
|
|
121
122
|
arglist = [
|
|
122
123
|
'--id',
|
|
123
124
|
self.flavor.id,
|
|
@@ -184,22 +185,19 @@ class TestFlavorCreate(TestFlavor):
|
|
|
184
185
|
expected_flavor
|
|
185
186
|
)
|
|
186
187
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
)
|
|
194
|
-
self.compute_sdk_client.create_flavor_extra_specs.assert_called_once_with(
|
|
195
|
-
create_flavor, props
|
|
196
|
-
)
|
|
197
|
-
self.compute_sdk_client.get_flavor_access.assert_not_called()
|
|
188
|
+
columns, data = self.cmd.take_action(parsed_args)
|
|
189
|
+
self.compute_sdk_client.create_flavor.assert_called_once_with(**args)
|
|
190
|
+
self.compute_sdk_client.create_flavor_extra_specs.assert_called_once_with(
|
|
191
|
+
create_flavor, props
|
|
192
|
+
)
|
|
193
|
+
self.compute_sdk_client.get_flavor_access.assert_not_called()
|
|
198
194
|
|
|
199
195
|
self.assertEqual(self.columns, columns)
|
|
200
196
|
self.assertCountEqual(tuple(cmp_data), data)
|
|
201
197
|
|
|
202
198
|
def test_flavor_create_other_options(self):
|
|
199
|
+
self.set_compute_api_version('2.55')
|
|
200
|
+
|
|
203
201
|
self.flavor.is_public = False
|
|
204
202
|
arglist = [
|
|
205
203
|
'--id',
|
|
@@ -272,10 +270,8 @@ class TestFlavorCreate(TestFlavor):
|
|
|
272
270
|
expected_flavor
|
|
273
271
|
)
|
|
274
272
|
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
):
|
|
278
|
-
columns, data = self.cmd.take_action(parsed_args)
|
|
273
|
+
columns, data = self.cmd.take_action(parsed_args)
|
|
274
|
+
|
|
279
275
|
self.compute_sdk_client.create_flavor.assert_called_once_with(**args)
|
|
280
276
|
self.compute_sdk_client.flavor_add_tenant_access.assert_called_with(
|
|
281
277
|
self.flavor.id,
|
|
@@ -314,7 +310,9 @@ class TestFlavorCreate(TestFlavor):
|
|
|
314
310
|
verifylist,
|
|
315
311
|
)
|
|
316
312
|
|
|
317
|
-
def
|
|
313
|
+
def test_flavor_create_with_description(self):
|
|
314
|
+
self.set_compute_api_version('2.55')
|
|
315
|
+
|
|
318
316
|
arglist = [
|
|
319
317
|
'--id',
|
|
320
318
|
self.flavor.id,
|
|
@@ -348,10 +346,8 @@ class TestFlavorCreate(TestFlavor):
|
|
|
348
346
|
('name', self.flavor.name),
|
|
349
347
|
]
|
|
350
348
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
):
|
|
354
|
-
columns, data = self.cmd.take_action(parsed_args)
|
|
349
|
+
|
|
350
|
+
columns, data = self.cmd.take_action(parsed_args)
|
|
355
351
|
|
|
356
352
|
args = {
|
|
357
353
|
'name': self.flavor.name,
|
|
@@ -371,7 +367,9 @@ class TestFlavorCreate(TestFlavor):
|
|
|
371
367
|
self.assertEqual(self.columns, columns)
|
|
372
368
|
self.assertCountEqual(self.data_private, data)
|
|
373
369
|
|
|
374
|
-
def
|
|
370
|
+
def test_flavor_create_with_description_pre_v255(self):
|
|
371
|
+
self.set_compute_api_version('2.54')
|
|
372
|
+
|
|
375
373
|
arglist = [
|
|
376
374
|
'--id',
|
|
377
375
|
self.flavor.id,
|
|
@@ -391,19 +389,16 @@ class TestFlavorCreate(TestFlavor):
|
|
|
391
389
|
]
|
|
392
390
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
393
391
|
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
)
|
|
397
|
-
self.assertRaises(
|
|
398
|
-
exceptions.CommandError, self.cmd.take_action, parsed_args
|
|
399
|
-
)
|
|
392
|
+
self.assertRaises(
|
|
393
|
+
exceptions.CommandError, self.cmd.take_action, parsed_args
|
|
394
|
+
)
|
|
400
395
|
|
|
401
396
|
|
|
402
397
|
class TestFlavorDelete(TestFlavor):
|
|
403
398
|
flavors = compute_fakes.create_flavors(count=2)
|
|
404
399
|
|
|
405
400
|
def setUp(self):
|
|
406
|
-
super(
|
|
401
|
+
super().setUp()
|
|
407
402
|
|
|
408
403
|
self.compute_sdk_client.delete_flavor.return_value = None
|
|
409
404
|
|
|
@@ -513,7 +508,7 @@ class TestFlavorList(TestFlavor):
|
|
|
513
508
|
)
|
|
514
509
|
|
|
515
510
|
def setUp(self):
|
|
516
|
-
super(
|
|
511
|
+
super().setUp()
|
|
517
512
|
|
|
518
513
|
self.api_mock = mock.Mock()
|
|
519
514
|
self.api_mock.side_effect = [
|
|
@@ -756,7 +751,7 @@ class TestFlavorSet(TestFlavor):
|
|
|
756
751
|
project = identity_fakes.FakeProject.create_one_project()
|
|
757
752
|
|
|
758
753
|
def setUp(self):
|
|
759
|
-
super(
|
|
754
|
+
super().setUp()
|
|
760
755
|
|
|
761
756
|
self.compute_sdk_client.find_flavor.return_value = self.flavor
|
|
762
757
|
# Return a project
|
|
@@ -887,7 +882,9 @@ class TestFlavorSet(TestFlavor):
|
|
|
887
882
|
self.compute_sdk_client.flavor_add_tenant_access.assert_not_called()
|
|
888
883
|
self.assertIsNone(result)
|
|
889
884
|
|
|
890
|
-
def
|
|
885
|
+
def test_flavor_set_description(self):
|
|
886
|
+
self.set_compute_api_version('2.55')
|
|
887
|
+
|
|
891
888
|
arglist = [
|
|
892
889
|
'--description',
|
|
893
890
|
'description',
|
|
@@ -899,16 +896,15 @@ class TestFlavorSet(TestFlavor):
|
|
|
899
896
|
]
|
|
900
897
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
901
898
|
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
899
|
+
result = self.cmd.take_action(parsed_args)
|
|
900
|
+
self.compute_sdk_client.update_flavor.assert_called_with(
|
|
901
|
+
flavor=self.flavor.id, description='description'
|
|
902
|
+
)
|
|
903
|
+
self.assertIsNone(result)
|
|
904
|
+
|
|
905
|
+
def test_flavor_set_description_pre_v254(self):
|
|
906
|
+
self.set_compute_api_version('2.54')
|
|
910
907
|
|
|
911
|
-
def test_flavor_set_description_api_older(self):
|
|
912
908
|
arglist = [
|
|
913
909
|
'--description',
|
|
914
910
|
'description',
|
|
@@ -920,14 +916,13 @@ class TestFlavorSet(TestFlavor):
|
|
|
920
916
|
]
|
|
921
917
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
922
918
|
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
)
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
919
|
+
self.assertRaises(
|
|
920
|
+
exceptions.CommandError, self.cmd.take_action, parsed_args
|
|
921
|
+
)
|
|
922
|
+
|
|
923
|
+
def test_flavor_set_description_using_name(self):
|
|
924
|
+
self.set_compute_api_version('2.55')
|
|
929
925
|
|
|
930
|
-
def test_flavor_set_description_using_name_api_newer(self):
|
|
931
926
|
arglist = [
|
|
932
927
|
'--description',
|
|
933
928
|
'description',
|
|
@@ -939,16 +934,15 @@ class TestFlavorSet(TestFlavor):
|
|
|
939
934
|
]
|
|
940
935
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
941
936
|
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
937
|
+
result = self.cmd.take_action(parsed_args)
|
|
938
|
+
self.compute_sdk_client.update_flavor.assert_called_with(
|
|
939
|
+
flavor=self.flavor.id, description='description'
|
|
940
|
+
)
|
|
941
|
+
self.assertIsNone(result)
|
|
942
|
+
|
|
943
|
+
def test_flavor_set_description_using_name_pre_v255(self):
|
|
944
|
+
self.set_compute_api_version('2.54')
|
|
950
945
|
|
|
951
|
-
def test_flavor_set_description_using_name_api_older(self):
|
|
952
946
|
arglist = [
|
|
953
947
|
'--description',
|
|
954
948
|
'description',
|
|
@@ -960,12 +954,9 @@ class TestFlavorSet(TestFlavor):
|
|
|
960
954
|
]
|
|
961
955
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
962
956
|
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
)
|
|
966
|
-
self.assertRaises(
|
|
967
|
-
exceptions.CommandError, self.cmd.take_action, parsed_args
|
|
968
|
-
)
|
|
957
|
+
self.assertRaises(
|
|
958
|
+
exceptions.CommandError, self.cmd.take_action, parsed_args
|
|
959
|
+
)
|
|
969
960
|
|
|
970
961
|
|
|
971
962
|
class TestFlavorShow(TestFlavor):
|
|
@@ -1006,7 +997,7 @@ class TestFlavorShow(TestFlavor):
|
|
|
1006
997
|
)
|
|
1007
998
|
|
|
1008
999
|
def setUp(self):
|
|
1009
|
-
super(
|
|
1000
|
+
super().setUp()
|
|
1010
1001
|
|
|
1011
1002
|
# Return value of _find_resource()
|
|
1012
1003
|
self.compute_sdk_client.find_flavor.return_value = self.flavor
|
|
@@ -1093,7 +1084,7 @@ class TestFlavorUnset(TestFlavor):
|
|
|
1093
1084
|
project = identity_fakes.FakeProject.create_one_project()
|
|
1094
1085
|
|
|
1095
1086
|
def setUp(self):
|
|
1096
|
-
super(
|
|
1087
|
+
super().setUp()
|
|
1097
1088
|
|
|
1098
1089
|
self.compute_sdk_client.find_flavor.return_value = self.flavor
|
|
1099
1090
|
# Return a project
|