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
|
@@ -91,27 +91,25 @@ class NetworkTagTests(NetworkTests):
|
|
|
91
91
|
|
|
92
92
|
def _create_resource_for_tag_test(self, name, args):
|
|
93
93
|
return self.openstack(
|
|
94
|
-
'{} create {} {}'
|
|
94
|
+
f'{self.base_command} create {args} {name}',
|
|
95
95
|
parse_output=True,
|
|
96
96
|
)
|
|
97
97
|
|
|
98
98
|
def _create_resource_and_tag_check(self, args, expected):
|
|
99
99
|
name = uuid.uuid4().hex
|
|
100
100
|
cmd_output = self._create_resource_for_tag_test(name, args)
|
|
101
|
-
self.addCleanup(
|
|
102
|
-
self.openstack, '{} delete {}'.format(self.base_command, name)
|
|
103
|
-
)
|
|
101
|
+
self.addCleanup(self.openstack, f'{self.base_command} delete {name}')
|
|
104
102
|
self.assertIsNotNone(cmd_output["id"])
|
|
105
103
|
self.assertEqual(set(expected), set(cmd_output['tags']))
|
|
106
104
|
return name
|
|
107
105
|
|
|
108
106
|
def _set_resource_and_tag_check(self, command, name, args, expected):
|
|
109
107
|
cmd_output = self.openstack(
|
|
110
|
-
'{} {} {} {}'
|
|
108
|
+
f'{self.base_command} {command} {args} {name}'
|
|
111
109
|
)
|
|
112
110
|
self.assertFalse(cmd_output)
|
|
113
111
|
cmd_output = self.openstack(
|
|
114
|
-
'{} show {}'
|
|
112
|
+
f'{self.base_command} show {name}',
|
|
115
113
|
parse_output=True,
|
|
116
114
|
)
|
|
117
115
|
self.assertEqual(set(expected), set(cmd_output['tags']))
|
|
@@ -192,7 +192,7 @@ class NetworkTests(common.NetworkTagTests):
|
|
|
192
192
|
cmd_output["description"],
|
|
193
193
|
)
|
|
194
194
|
|
|
195
|
-
del_output = self.openstack('network delete
|
|
195
|
+
del_output = self.openstack(f'network delete {name1} {name2}')
|
|
196
196
|
self.assertOutput('', del_output)
|
|
197
197
|
|
|
198
198
|
def test_network_list(self):
|
|
@@ -237,7 +237,7 @@ class NetworkTests(common.NetworkTagTests):
|
|
|
237
237
|
else:
|
|
238
238
|
network_options = '--subnet 4.5.6.7/28 '
|
|
239
239
|
cmd_output = self.openstack(
|
|
240
|
-
'network create --share
|
|
240
|
+
f'network create --share {network_options}{name2}',
|
|
241
241
|
parse_output=True,
|
|
242
242
|
)
|
|
243
243
|
self.addCleanup(self.openstack, 'network delete ' + name2)
|
|
@@ -353,7 +353,9 @@ class NetworkTests(common.NetworkTagTests):
|
|
|
353
353
|
|
|
354
354
|
# Add Agent to Network
|
|
355
355
|
self.openstack(
|
|
356
|
-
'network agent add network --dhcp
|
|
356
|
+
'network agent add network --dhcp {} {}'.format(
|
|
357
|
+
agent_id, network_id
|
|
358
|
+
)
|
|
357
359
|
)
|
|
358
360
|
|
|
359
361
|
# Test network list --agent
|
|
@@ -123,7 +123,9 @@ class TestAgentList(common.NetworkTests):
|
|
|
123
123
|
|
|
124
124
|
# Add Agent to Network
|
|
125
125
|
self.openstack(
|
|
126
|
-
'network agent add network --dhcp
|
|
126
|
+
'network agent add network --dhcp {} {}'.format(
|
|
127
|
+
agent_id, network_id
|
|
128
|
+
)
|
|
127
129
|
)
|
|
128
130
|
|
|
129
131
|
# Test network agent list --network
|
|
@@ -169,9 +171,7 @@ class TestAgentList(common.NetworkTests):
|
|
|
169
171
|
agent_id = cmd_output[0]['ID']
|
|
170
172
|
|
|
171
173
|
# Add router to agent
|
|
172
|
-
self.openstack(
|
|
173
|
-
'network agent add router --l3 %s %s' % (agent_id, router_id)
|
|
174
|
-
)
|
|
174
|
+
self.openstack(f'network agent add router --l3 {agent_id} {router_id}')
|
|
175
175
|
|
|
176
176
|
# Test router list --agent
|
|
177
177
|
cmd_output = self.openstack(
|
|
@@ -184,7 +184,9 @@ class TestAgentList(common.NetworkTests):
|
|
|
184
184
|
|
|
185
185
|
# Remove router from agent
|
|
186
186
|
self.openstack(
|
|
187
|
-
'network agent remove router --l3
|
|
187
|
+
'network agent remove router --l3 {} {}'.format(
|
|
188
|
+
agent_id, router_id
|
|
189
|
+
)
|
|
188
190
|
)
|
|
189
191
|
cmd_output = self.openstack(
|
|
190
192
|
'network agent list --router %s' % router_id,
|
|
@@ -69,7 +69,7 @@ class NetworkQosRuleTestsMinimumBandwidth(NetworkQosTests):
|
|
|
69
69
|
parse_output=True,
|
|
70
70
|
)
|
|
71
71
|
raw_output = self.openstack(
|
|
72
|
-
'network qos rule delete
|
|
72
|
+
'network qos rule delete {} {}'.format(policy_name, rule['id'])
|
|
73
73
|
)
|
|
74
74
|
self.assertEqual('', raw_output)
|
|
75
75
|
|
|
@@ -144,7 +144,7 @@ class NetworkQosRuleTestsMinimumPacketRate(NetworkQosTests):
|
|
|
144
144
|
parse_output=True,
|
|
145
145
|
)
|
|
146
146
|
raw_output = self.openstack(
|
|
147
|
-
'network qos rule delete
|
|
147
|
+
'network qos rule delete {} {}'.format(policy_name, rule['id'])
|
|
148
148
|
)
|
|
149
149
|
self.assertEqual('', raw_output)
|
|
150
150
|
|
|
@@ -217,7 +217,7 @@ class NetworkQosRuleTestsDSCPMarking(NetworkQosTests):
|
|
|
217
217
|
parse_output=True,
|
|
218
218
|
)
|
|
219
219
|
raw_output = self.openstack(
|
|
220
|
-
'network qos rule delete
|
|
220
|
+
'network qos rule delete {} {}'.format(policy_name, rule['id'])
|
|
221
221
|
)
|
|
222
222
|
self.assertEqual('', raw_output)
|
|
223
223
|
|
|
@@ -292,7 +292,7 @@ class NetworkQosRuleTestsBandwidthLimit(NetworkQosTests):
|
|
|
292
292
|
parse_output=True,
|
|
293
293
|
)
|
|
294
294
|
raw_output = self.openstack(
|
|
295
|
-
'network qos rule delete
|
|
295
|
+
'network qos rule delete {} {}'.format(policy_name, rule['id'])
|
|
296
296
|
)
|
|
297
297
|
self.assertEqual('', raw_output)
|
|
298
298
|
|
|
@@ -47,7 +47,7 @@ class PortTests(common.NetworkTagTests):
|
|
|
47
47
|
def test_port_delete(self):
|
|
48
48
|
"""Test create, delete multiple"""
|
|
49
49
|
json_output = self.openstack(
|
|
50
|
-
'port create --network
|
|
50
|
+
f'port create --network {self.NETWORK_NAME} {self.NAME}',
|
|
51
51
|
parse_output=True,
|
|
52
52
|
)
|
|
53
53
|
id1 = json_output.get('id')
|
|
@@ -56,7 +56,9 @@ class PortTests(common.NetworkTagTests):
|
|
|
56
56
|
self.assertEqual(self.NAME, json_output.get('name'))
|
|
57
57
|
|
|
58
58
|
json_output = self.openstack(
|
|
59
|
-
'port create --network
|
|
59
|
+
'port create --network {} {}x'.format(
|
|
60
|
+
self.NETWORK_NAME, self.NAME
|
|
61
|
+
),
|
|
60
62
|
parse_output=True,
|
|
61
63
|
)
|
|
62
64
|
id2 = json_output.get('id')
|
|
@@ -65,13 +67,13 @@ class PortTests(common.NetworkTagTests):
|
|
|
65
67
|
self.assertEqual(self.NAME + 'x', json_output.get('name'))
|
|
66
68
|
|
|
67
69
|
# Clean up after ourselves
|
|
68
|
-
raw_output = self.openstack('port delete
|
|
70
|
+
raw_output = self.openstack(f'port delete {id1} {id2}')
|
|
69
71
|
self.assertOutput('', raw_output)
|
|
70
72
|
|
|
71
73
|
def test_port_list(self):
|
|
72
74
|
"""Test create defaults, list, delete"""
|
|
73
75
|
json_output = self.openstack(
|
|
74
|
-
'port create --network
|
|
76
|
+
f'port create --network {self.NETWORK_NAME} {self.NAME}',
|
|
75
77
|
parse_output=True,
|
|
76
78
|
)
|
|
77
79
|
id1 = json_output.get('id')
|
|
@@ -82,7 +84,9 @@ class PortTests(common.NetworkTagTests):
|
|
|
82
84
|
self.assertEqual(self.NAME, json_output.get('name'))
|
|
83
85
|
|
|
84
86
|
json_output = self.openstack(
|
|
85
|
-
'port create --network
|
|
87
|
+
'port create --network {} {}x'.format(
|
|
88
|
+
self.NETWORK_NAME, self.NAME
|
|
89
|
+
),
|
|
86
90
|
parse_output=True,
|
|
87
91
|
)
|
|
88
92
|
id2 = json_output.get('id')
|
|
@@ -169,7 +173,7 @@ class PortTests(common.NetworkTagTests):
|
|
|
169
173
|
self.assertIsNotNone(json_output.get('mac_address'))
|
|
170
174
|
|
|
171
175
|
raw_output = self.openstack(
|
|
172
|
-
'port unset --security-group
|
|
176
|
+
f'port unset --security-group {sg_id} {id1}'
|
|
173
177
|
)
|
|
174
178
|
self.assertOutput('', raw_output)
|
|
175
179
|
|
|
@@ -247,7 +251,7 @@ class PortTests(common.NetworkTagTests):
|
|
|
247
251
|
)
|
|
248
252
|
|
|
249
253
|
raw_output = self.openstack(
|
|
250
|
-
'port unset --security-group
|
|
254
|
+
f'port unset --security-group {sg_id1} {id1}'
|
|
251
255
|
)
|
|
252
256
|
self.assertOutput('', raw_output)
|
|
253
257
|
|
|
@@ -287,10 +287,10 @@ class RouterTests(common.NetworkTagTests):
|
|
|
287
287
|
self.openstack('router create %s' % router_name)
|
|
288
288
|
self.addCleanup(self.openstack, 'router delete %s' % router_name)
|
|
289
289
|
|
|
290
|
-
self.openstack('router add subnet
|
|
290
|
+
self.openstack(f'router add subnet {router_name} {subnet_name}')
|
|
291
291
|
self.addCleanup(
|
|
292
292
|
self.openstack,
|
|
293
|
-
'router remove subnet
|
|
293
|
+
f'router remove subnet {router_name} {subnet_name}',
|
|
294
294
|
)
|
|
295
295
|
|
|
296
296
|
out1 = (
|
|
@@ -23,7 +23,7 @@ class ContainerTests(common.ObjectStoreTests):
|
|
|
23
23
|
|
|
24
24
|
@classmethod
|
|
25
25
|
def setUpClass(cls):
|
|
26
|
-
super(
|
|
26
|
+
super().setUpClass()
|
|
27
27
|
if cls.haz_object_store:
|
|
28
28
|
opts = cls.get_opts(['container'])
|
|
29
29
|
raw_output = cls.openstack('container create ' + cls.NAME + opts)
|
|
@@ -36,10 +36,10 @@ class ContainerTests(common.ObjectStoreTests):
|
|
|
36
36
|
raw_output = cls.openstack('container delete ' + cls.NAME)
|
|
37
37
|
cls.assertOutput('', raw_output)
|
|
38
38
|
finally:
|
|
39
|
-
super(
|
|
39
|
+
super().tearDownClass()
|
|
40
40
|
|
|
41
41
|
def setUp(self):
|
|
42
|
-
super(
|
|
42
|
+
super().setUp()
|
|
43
43
|
# Skip tests if no object-store is present
|
|
44
44
|
if not self.haz_object_store:
|
|
45
45
|
self.skipTest("No object-store service present")
|
|
@@ -27,7 +27,7 @@ class ObjectTests(common.ObjectStoreTests):
|
|
|
27
27
|
CONTAINER_NAME = uuid.uuid4().hex
|
|
28
28
|
|
|
29
29
|
def setUp(self):
|
|
30
|
-
super(
|
|
30
|
+
super().setUp()
|
|
31
31
|
# Skip tests if no object-store is present
|
|
32
32
|
if not self.haz_object_store:
|
|
33
33
|
self.skipTest("No object-store service present")
|
|
@@ -54,7 +54,7 @@ class ObjectTests(common.ObjectStoreTests):
|
|
|
54
54
|
# TODO(stevemar): Assert returned fields
|
|
55
55
|
|
|
56
56
|
raw_output = self.openstack(
|
|
57
|
-
'object create
|
|
57
|
+
f'object create {self.CONTAINER_NAME} {object_file}'
|
|
58
58
|
)
|
|
59
59
|
items = self.parse_listing(raw_output)
|
|
60
60
|
self.assert_show_fields(items, OBJECT_FIELDS)
|
|
@@ -63,9 +63,7 @@ class ObjectTests(common.ObjectStoreTests):
|
|
|
63
63
|
items = self.parse_listing(raw_output)
|
|
64
64
|
self.assert_table_structure(items, BASIC_LIST_HEADERS)
|
|
65
65
|
|
|
66
|
-
self.openstack(
|
|
67
|
-
'object save %s %s' % (self.CONTAINER_NAME, object_file)
|
|
68
|
-
)
|
|
66
|
+
self.openstack(f'object save {self.CONTAINER_NAME} {object_file}')
|
|
69
67
|
# TODO(stevemar): Assert returned fields
|
|
70
68
|
|
|
71
69
|
tmp_file = 'tmp.txt'
|
|
@@ -77,23 +75,21 @@ class ObjectTests(common.ObjectStoreTests):
|
|
|
77
75
|
# TODO(stevemar): Assert returned fields
|
|
78
76
|
|
|
79
77
|
raw_output = self.openstack(
|
|
80
|
-
'object save
|
|
78
|
+
'object save {} {} --file -'.format(
|
|
79
|
+
self.CONTAINER_NAME, object_file
|
|
80
|
+
)
|
|
81
81
|
)
|
|
82
82
|
self.assertEqual(raw_output, 'test content')
|
|
83
83
|
|
|
84
|
-
self.openstack(
|
|
85
|
-
'object show %s %s' % (self.CONTAINER_NAME, object_file)
|
|
86
|
-
)
|
|
84
|
+
self.openstack(f'object show {self.CONTAINER_NAME} {object_file}')
|
|
87
85
|
# TODO(stevemar): Assert returned fields
|
|
88
86
|
|
|
89
87
|
raw_output = self.openstack(
|
|
90
|
-
'object delete
|
|
88
|
+
f'object delete {self.CONTAINER_NAME} {object_file}'
|
|
91
89
|
)
|
|
92
90
|
self.assertEqual(0, len(raw_output))
|
|
93
91
|
|
|
94
|
-
self.openstack(
|
|
95
|
-
'object create %s %s' % (self.CONTAINER_NAME, object_file)
|
|
96
|
-
)
|
|
92
|
+
self.openstack(f'object create {self.CONTAINER_NAME} {object_file}')
|
|
97
93
|
raw_output = self.openstack(
|
|
98
94
|
'container delete -r %s' % self.CONTAINER_NAME
|
|
99
95
|
)
|
|
@@ -70,7 +70,7 @@ class BaseVolumeTests(base.TestCase):
|
|
|
70
70
|
result = cls.openstack(check_type + ' list', parse_output=True)
|
|
71
71
|
names = [x[name_field] for x in result]
|
|
72
72
|
if check_name not in names:
|
|
73
|
-
print('{} {} is now deleted'
|
|
73
|
+
print(f'{check_type} {check_name} is now deleted')
|
|
74
74
|
return
|
|
75
75
|
print(
|
|
76
76
|
'Checking {} {} Waiting for deleted'.format(
|
|
@@ -20,7 +20,7 @@ class VolumeServiceTests(common.BaseVolumeTests):
|
|
|
20
20
|
cmd_output = self.openstack('volume service list', parse_output=True)
|
|
21
21
|
|
|
22
22
|
# Get the nonredundant services and hosts
|
|
23
|
-
services = list(
|
|
23
|
+
services = list({x['Binary'] for x in cmd_output})
|
|
24
24
|
|
|
25
25
|
# Test volume service list --service
|
|
26
26
|
cmd_output = self.openstack(
|
|
@@ -22,7 +22,7 @@ class VolumeSnapshotTests(common.BaseVolumeTests):
|
|
|
22
22
|
|
|
23
23
|
@classmethod
|
|
24
24
|
def setUpClass(cls):
|
|
25
|
-
super(
|
|
25
|
+
super().setUpClass()
|
|
26
26
|
# create a volume for all tests to create snapshot
|
|
27
27
|
cmd_output = cls.openstack(
|
|
28
28
|
'volume create ' + '--size 1 ' + cls.VOLLY,
|
|
@@ -38,7 +38,7 @@ class VolumeSnapshotTests(common.BaseVolumeTests):
|
|
|
38
38
|
raw_output = cls.openstack('volume delete --force ' + cls.VOLLY)
|
|
39
39
|
cls.assertOutput('', raw_output)
|
|
40
40
|
finally:
|
|
41
|
-
super(
|
|
41
|
+
super().tearDownClass()
|
|
42
42
|
|
|
43
43
|
def test_volume_snapshot_delete(self):
|
|
44
44
|
"""Test create, delete multiple"""
|
|
@@ -23,7 +23,7 @@ class TransferRequestTests(common.BaseVolumeTests):
|
|
|
23
23
|
|
|
24
24
|
@classmethod
|
|
25
25
|
def setUpClass(cls):
|
|
26
|
-
super(
|
|
26
|
+
super().setUpClass()
|
|
27
27
|
cmd_output = cls.openstack(
|
|
28
28
|
'volume create --size 1 ' + cls.VOLUME_NAME,
|
|
29
29
|
parse_output=True,
|
|
@@ -40,7 +40,7 @@ class TransferRequestTests(common.BaseVolumeTests):
|
|
|
40
40
|
)
|
|
41
41
|
cls.assertOutput('', raw_output_volume)
|
|
42
42
|
finally:
|
|
43
|
-
super(
|
|
43
|
+
super().tearDownClass()
|
|
44
44
|
|
|
45
45
|
def test_volume_transfer_request_accept(self):
|
|
46
46
|
volume_name = uuid.uuid4().hex
|
|
@@ -110,7 +110,7 @@ class VolumeTypeTests(common.BaseVolumeTests):
|
|
|
110
110
|
time.sleep(5)
|
|
111
111
|
self.openstack('volume type create %s' % vol_type2)
|
|
112
112
|
time.sleep(5)
|
|
113
|
-
cmd = 'volume type delete
|
|
113
|
+
cmd = f'volume type delete {vol_type1} {vol_type2}'
|
|
114
114
|
raw_output = self.openstack(cmd)
|
|
115
115
|
self.assertOutput('', raw_output)
|
|
116
116
|
|
|
@@ -20,8 +20,8 @@ class VolumeServiceTests(common.BaseVolumeTests):
|
|
|
20
20
|
cmd_output = self.openstack('volume service list', parse_output=True)
|
|
21
21
|
|
|
22
22
|
# Get the nonredundant services and hosts
|
|
23
|
-
services = list(
|
|
24
|
-
hosts = list(
|
|
23
|
+
services = list({x['Binary'] for x in cmd_output})
|
|
24
|
+
hosts = list({x['Host'] for x in cmd_output})
|
|
25
25
|
|
|
26
26
|
# Test volume service list --service
|
|
27
27
|
cmd_output = self.openstack(
|
|
@@ -19,7 +19,7 @@ class VolumeBackupTests(common.BaseVolumeTests):
|
|
|
19
19
|
"""Functional tests for volume backups."""
|
|
20
20
|
|
|
21
21
|
def setUp(self):
|
|
22
|
-
super(
|
|
22
|
+
super().setUp()
|
|
23
23
|
self.backup_enabled = False
|
|
24
24
|
serv_list = self.openstack('volume service list', parse_output=True)
|
|
25
25
|
for service in serv_list:
|
|
@@ -48,7 +48,7 @@ class VolumeBackupTests(common.BaseVolumeTests):
|
|
|
48
48
|
|
|
49
49
|
# restore the backup
|
|
50
50
|
backup_restored = self.openstack(
|
|
51
|
-
'volume backup restore
|
|
51
|
+
'volume backup restore {} {}'.format(backup['id'], vol_id),
|
|
52
52
|
parse_output=True,
|
|
53
53
|
)
|
|
54
54
|
self.assertEqual(backup_restored['backup_id'], backup['id'])
|
|
@@ -22,7 +22,7 @@ class VolumeSnapshotTests(common.BaseVolumeTests):
|
|
|
22
22
|
|
|
23
23
|
@classmethod
|
|
24
24
|
def setUpClass(cls):
|
|
25
|
-
super(
|
|
25
|
+
super().setUpClass()
|
|
26
26
|
# create a volume for all tests to create snapshot
|
|
27
27
|
cmd_output = cls.openstack(
|
|
28
28
|
'volume create ' + '--size 1 ' + cls.VOLLY,
|
|
@@ -38,7 +38,7 @@ class VolumeSnapshotTests(common.BaseVolumeTests):
|
|
|
38
38
|
raw_output = cls.openstack('volume delete --force ' + cls.VOLLY)
|
|
39
39
|
cls.assertOutput('', raw_output)
|
|
40
40
|
finally:
|
|
41
|
-
super(
|
|
41
|
+
super().tearDownClass()
|
|
42
42
|
|
|
43
43
|
def test_volume_snapshot_delete(self):
|
|
44
44
|
"""Test create, delete multiple"""
|
|
@@ -129,7 +129,7 @@ class VolumeTypeTests(common.BaseVolumeTests):
|
|
|
129
129
|
time.sleep(5)
|
|
130
130
|
self.openstack('volume type create %s' % vol_type2)
|
|
131
131
|
time.sleep(5)
|
|
132
|
-
cmd = 'volume type delete
|
|
132
|
+
cmd = f'volume type delete {vol_type1} {vol_type2}'
|
|
133
133
|
raw_output = self.openstack(cmd)
|
|
134
134
|
self.assertOutput('', raw_output)
|
|
135
135
|
|
|
@@ -22,7 +22,7 @@ class VolumeSnapshotTests(common.BaseVolumeTests):
|
|
|
22
22
|
|
|
23
23
|
@classmethod
|
|
24
24
|
def setUpClass(cls):
|
|
25
|
-
super(
|
|
25
|
+
super().setUpClass()
|
|
26
26
|
# create a volume for all tests to create snapshot
|
|
27
27
|
cmd_output = cls.openstack(
|
|
28
28
|
'volume create ' + '--size 1 ' + cls.VOLLY,
|
|
@@ -38,7 +38,7 @@ class VolumeSnapshotTests(common.BaseVolumeTests):
|
|
|
38
38
|
raw_output = cls.openstack('volume delete --force ' + cls.VOLLY)
|
|
39
39
|
cls.assertOutput('', raw_output)
|
|
40
40
|
finally:
|
|
41
|
-
super(
|
|
41
|
+
super().tearDownClass()
|
|
42
42
|
|
|
43
43
|
def test_volume_snapshot_delete(self):
|
|
44
44
|
"""Test create, delete multiple"""
|
|
@@ -129,7 +129,7 @@ class VolumeTypeTests(common.BaseVolumeTests):
|
|
|
129
129
|
time.sleep(5)
|
|
130
130
|
self.openstack('volume type create %s' % vol_type2)
|
|
131
131
|
time.sleep(5)
|
|
132
|
-
cmd = 'volume type delete
|
|
132
|
+
cmd = f'volume type delete {vol_type1} {vol_type2}'
|
|
133
133
|
raw_output = self.openstack(cmd)
|
|
134
134
|
self.assertOutput('', raw_output)
|
|
135
135
|
|
|
@@ -21,7 +21,7 @@ from openstackclient.tests.unit.api import fakes as api_fakes
|
|
|
21
21
|
|
|
22
22
|
class TestKeystoneSession(api_fakes.TestSession):
|
|
23
23
|
def setUp(self):
|
|
24
|
-
super(
|
|
24
|
+
super().setUp()
|
|
25
25
|
self.api = api.KeystoneSession(
|
|
26
26
|
session=self.sess,
|
|
27
27
|
endpoint=self.BASE_URL,
|
|
@@ -40,7 +40,7 @@ class TestKeystoneSession(api_fakes.TestSession):
|
|
|
40
40
|
|
|
41
41
|
class TestBaseAPI(api_fakes.TestSession):
|
|
42
42
|
def setUp(self):
|
|
43
|
-
super(
|
|
43
|
+
super().setUp()
|
|
44
44
|
self.api = api.BaseAPI(
|
|
45
45
|
session=self.sess,
|
|
46
46
|
endpoint=self.BASE_URL,
|