python-openstackclient 9.0.0__py3-none-any.whl → 10.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/__init__.py +2 -6
- openstackclient/api/api.py +41 -23
- openstackclient/api/compute_v2.py +44 -25
- openstackclient/api/object_store_v1.py +75 -97
- openstackclient/api/volume_v2.py +2 -1
- openstackclient/api/volume_v3.py +2 -1
- openstackclient/common/availability_zone.py +59 -43
- openstackclient/common/clientmanager.py +56 -29
- openstackclient/common/configuration.py +10 -3
- openstackclient/common/envvars.py +2 -2
- openstackclient/common/extension.py +14 -5
- openstackclient/common/limits.py +10 -5
- openstackclient/common/module.py +36 -34
- openstackclient/common/pagination.py +50 -6
- openstackclient/common/progressbar.py +7 -6
- openstackclient/common/project_cleanup.py +11 -6
- openstackclient/common/quota.py +105 -103
- openstackclient/common/versions.py +8 -2
- openstackclient/compute/client.py +7 -3
- openstackclient/compute/v2/agent.py +17 -10
- openstackclient/compute/v2/aggregate.py +36 -22
- openstackclient/compute/v2/console.py +14 -8
- openstackclient/compute/v2/console_connection.py +11 -3
- openstackclient/compute/v2/flavor.py +42 -22
- openstackclient/compute/v2/host.py +14 -6
- openstackclient/compute/v2/hypervisor.py +16 -5
- openstackclient/compute/v2/hypervisor_stats.py +10 -2
- openstackclient/compute/v2/keypair.py +35 -16
- openstackclient/compute/v2/server.py +268 -179
- openstackclient/compute/v2/server_backup.py +10 -4
- openstackclient/compute/v2/server_event.py +28 -12
- openstackclient/compute/v2/server_group.py +23 -11
- openstackclient/compute/v2/server_image.py +19 -10
- openstackclient/compute/v2/server_migration.py +27 -10
- openstackclient/compute/v2/server_share.py +274 -0
- openstackclient/compute/v2/server_volume.py +13 -5
- openstackclient/compute/v2/service.py +17 -8
- openstackclient/compute/v2/usage.py +28 -23
- openstackclient/identity/client.py +8 -3
- openstackclient/identity/common.py +82 -47
- openstackclient/identity/v2_0/catalog.py +14 -7
- openstackclient/identity/v2_0/ec2creds.py +21 -10
- openstackclient/identity/v2_0/endpoint.py +23 -11
- openstackclient/identity/v2_0/project.py +25 -14
- openstackclient/identity/v2_0/role.py +28 -14
- openstackclient/identity/v2_0/role_assignment.py +9 -3
- openstackclient/identity/v2_0/service.py +23 -11
- openstackclient/identity/v2_0/token.py +12 -5
- openstackclient/identity/v2_0/user.py +26 -15
- openstackclient/identity/v3/access_rule.py +32 -12
- openstackclient/identity/v3/application_credential.py +66 -24
- openstackclient/identity/v3/catalog.py +14 -7
- openstackclient/identity/v3/consumer.py +22 -11
- openstackclient/identity/v3/credential.py +39 -17
- openstackclient/identity/v3/domain.py +40 -19
- openstackclient/identity/v3/ec2creds.py +25 -12
- openstackclient/identity/v3/endpoint.py +98 -64
- openstackclient/identity/v3/endpoint_group.py +28 -17
- openstackclient/identity/v3/federation_protocol.py +44 -20
- openstackclient/identity/v3/group.py +64 -40
- openstackclient/identity/v3/identity_provider.py +95 -57
- openstackclient/identity/v3/implied_role.py +21 -9
- openstackclient/identity/v3/limit.py +42 -17
- openstackclient/identity/v3/mapping.py +58 -28
- openstackclient/identity/v3/policy.py +23 -12
- openstackclient/identity/v3/project.py +59 -26
- openstackclient/identity/v3/region.py +39 -17
- openstackclient/identity/v3/registered_limit.py +41 -16
- openstackclient/identity/v3/role.py +62 -31
- openstackclient/identity/v3/role_assignment.py +25 -7
- openstackclient/identity/v3/service.py +39 -17
- openstackclient/identity/v3/service_provider.py +40 -16
- openstackclient/identity/v3/tag.py +23 -6
- openstackclient/identity/v3/token.py +30 -14
- openstackclient/identity/v3/trust.py +39 -18
- openstackclient/identity/v3/unscoped_saml.py +10 -2
- openstackclient/identity/v3/user.py +86 -36
- openstackclient/image/client.py +7 -3
- openstackclient/image/v1/image.py +33 -26
- openstackclient/image/v2/cache.py +16 -11
- openstackclient/image/v2/image.py +88 -56
- openstackclient/image/v2/info.py +7 -1
- openstackclient/image/v2/metadef_namespaces.py +117 -20
- openstackclient/image/v2/metadef_objects.py +32 -19
- openstackclient/image/v2/metadef_properties.py +30 -16
- openstackclient/image/v2/metadef_resource_type_association.py +14 -7
- openstackclient/image/v2/metadef_resource_types.py +7 -1
- openstackclient/image/v2/task.py +25 -27
- openstackclient/locale/tr_TR/LC_MESSAGES/openstackclient.po +7 -192
- openstackclient/network/client.py +7 -2
- openstackclient/network/common.py +16 -241
- openstackclient/network/utils.py +27 -54
- openstackclient/network/v2/address_group.py +39 -16
- openstackclient/network/v2/address_scope.py +36 -20
- openstackclient/network/v2/bgpvpn/bgpvpn.py +477 -0
- openstackclient/network/v2/bgpvpn/constants.py +30 -0
- openstackclient/network/v2/bgpvpn/network_association.py +226 -0
- openstackclient/network/v2/bgpvpn/port_association.py +504 -0
- openstackclient/network/v2/bgpvpn/router_association.py +301 -0
- openstackclient/network/v2/default_security_group_rule.py +31 -14
- openstackclient/network/v2/floating_ip.py +121 -162
- openstackclient/network/v2/floating_ip_port_forwarding.py +41 -19
- openstackclient/network/v2/fwaas/__init__.py +0 -0
- openstackclient/network/v2/fwaas/group.py +499 -0
- openstackclient/network/v2/fwaas/policy.py +518 -0
- openstackclient/network/v2/fwaas/rule.py +610 -0
- openstackclient/network/v2/ip_availability.py +25 -8
- openstackclient/network/v2/l3_conntrack_helper.py +35 -13
- openstackclient/network/v2/local_ip.py +27 -13
- openstackclient/network/v2/local_ip_association.py +17 -7
- openstackclient/network/v2/ndp_proxy.py +23 -11
- openstackclient/network/v2/network.py +213 -213
- openstackclient/network/v2/network_agent.py +77 -34
- openstackclient/network/v2/network_auto_allocated_topology.py +27 -15
- openstackclient/network/v2/network_flavor.py +45 -21
- openstackclient/network/v2/network_flavor_profile.py +42 -17
- openstackclient/network/v2/network_meter.py +39 -15
- openstackclient/network/v2/network_meter_rule.py +40 -12
- openstackclient/network/v2/network_qos_policy.py +39 -21
- openstackclient/network/v2/network_qos_rule.py +48 -18
- openstackclient/network/v2/network_qos_rule_type.py +28 -9
- openstackclient/network/v2/network_rbac.py +34 -16
- openstackclient/network/v2/network_segment.py +32 -11
- openstackclient/network/v2/network_segment_range.py +70 -31
- openstackclient/network/v2/network_service_provider.py +7 -1
- openstackclient/network/v2/network_trunk.py +41 -22
- openstackclient/network/v2/port.py +141 -40
- openstackclient/network/v2/router.py +101 -67
- openstackclient/network/v2/security_group.py +97 -198
- openstackclient/network/v2/security_group_rule.py +115 -282
- openstackclient/network/v2/subnet.py +63 -34
- openstackclient/network/v2/subnet_pool.py +42 -24
- openstackclient/network/v2/taas/tap_flow.py +35 -14
- openstackclient/network/v2/taas/tap_mirror.py +28 -14
- openstackclient/network/v2/taas/tap_service.py +26 -12
- openstackclient/object/client.py +7 -2
- openstackclient/object/v1/account.py +13 -6
- openstackclient/object/v1/container.py +28 -16
- openstackclient/object/v1/object.py +28 -16
- openstackclient/py.typed +0 -0
- openstackclient/shell.py +46 -10
- openstackclient/tests/functional/base.py +55 -20
- openstackclient/tests/functional/common/test_extension.py +4 -0
- openstackclient/tests/functional/common/test_quota.py +3 -1
- openstackclient/tests/functional/compute/v2/common.py +14 -13
- openstackclient/tests/functional/compute/v2/test_flavor.py +3 -1
- openstackclient/tests/functional/compute/v2/test_server.py +3 -0
- openstackclient/tests/functional/identity/v2/common.py +10 -6
- openstackclient/tests/functional/identity/v2/test_role.py +4 -4
- openstackclient/tests/functional/identity/v3/common.py +59 -19
- openstackclient/tests/functional/identity/v3/test_application_credential.py +1 -1
- openstackclient/tests/functional/identity/v3/test_group.py +20 -20
- openstackclient/tests/functional/identity/v3/test_idp.py +3 -1
- openstackclient/tests/functional/identity/v3/test_mapping.py +81 -0
- openstackclient/tests/functional/identity/v3/test_project.py +10 -10
- openstackclient/tests/functional/identity/v3/test_role.py +18 -18
- openstackclient/tests/functional/identity/v3/test_role_assignment.py +12 -12
- openstackclient/tests/functional/identity/v3/test_user.py +8 -8
- openstackclient/tests/functional/image/base.py +1 -6
- openstackclient/tests/functional/network/v2/common.py +5 -2
- openstackclient/tests/functional/network/v2/test_floating_ip.py +10 -4
- openstackclient/tests/functional/network/v2/test_ip_availability.py +4 -0
- openstackclient/tests/functional/network/v2/test_network_meter_rule.py +3 -2
- openstackclient/tests/functional/network/v2/test_network_segment.py +5 -0
- openstackclient/tests/functional/network/v2/test_subnet.py +13 -9
- openstackclient/tests/functional/object/v1/common.py +4 -0
- openstackclient/tests/functional/volume/v2/common.py +4 -0
- openstackclient/tests/functional/volume/v2/test_volume_snapshot.py +27 -11
- openstackclient/tests/functional/volume/v2/test_volume_type.py +2 -2
- openstackclient/tests/functional/volume/v3/common.py +4 -0
- openstackclient/tests/functional/volume/v3/test_volume_group.py +163 -0
- openstackclient/tests/functional/volume/v3/test_volume_snapshot.py +11 -7
- openstackclient/tests/functional/volume/v3/test_volume_type.py +2 -2
- openstackclient/tests/unit/common/test_availability_zone.py +35 -49
- openstackclient/tests/unit/common/test_extension.py +2 -2
- openstackclient/tests/unit/common/test_limits.py +1 -1
- openstackclient/tests/unit/common/test_module.py +82 -44
- openstackclient/tests/unit/common/test_project_cleanup.py +3 -1
- openstackclient/tests/unit/common/test_quota.py +15 -26
- openstackclient/tests/unit/compute/v2/fakes.py +26 -57
- openstackclient/tests/unit/compute/v2/test_agent.py +4 -4
- openstackclient/tests/unit/compute/v2/test_aggregate.py +1 -1
- openstackclient/tests/unit/compute/v2/test_console.py +2 -2
- openstackclient/tests/unit/compute/v2/test_console_connection.py +1 -1
- openstackclient/tests/unit/compute/v2/test_flavor.py +29 -3
- openstackclient/tests/unit/compute/v2/test_host.py +3 -3
- openstackclient/tests/unit/compute/v2/test_hypervisor.py +2 -2
- openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +1 -1
- openstackclient/tests/unit/compute/v2/test_keypair.py +7 -7
- openstackclient/tests/unit/compute/v2/test_server.py +26 -111
- openstackclient/tests/unit/compute/v2/test_server_backup.py +1 -1
- openstackclient/tests/unit/compute/v2/test_server_event.py +2 -2
- openstackclient/tests/unit/compute/v2/test_server_group.py +1 -1
- openstackclient/tests/unit/compute/v2/test_server_image.py +1 -1
- openstackclient/tests/unit/compute/v2/test_server_migration.py +4 -4
- openstackclient/tests/unit/compute/v2/test_server_share.py +287 -0
- openstackclient/tests/unit/compute/v2/test_server_volume.py +2 -2
- openstackclient/tests/unit/compute/v2/test_service.py +3 -3
- openstackclient/tests/unit/compute/v2/test_usage.py +1 -1
- openstackclient/tests/unit/identity/v2_0/fakes.py +3 -7
- openstackclient/tests/unit/identity/v2_0/test_endpoint.py +1 -1
- openstackclient/tests/unit/identity/v2_0/test_project.py +1 -1
- openstackclient/tests/unit/identity/v2_0/test_role.py +1 -1
- openstackclient/tests/unit/identity/v2_0/test_role_assignment.py +1 -1
- openstackclient/tests/unit/identity/v2_0/test_service.py +1 -1
- openstackclient/tests/unit/identity/v2_0/test_token.py +2 -2
- openstackclient/tests/unit/identity/v2_0/test_user.py +1 -1
- openstackclient/tests/unit/identity/v3/fakes.py +8 -38
- openstackclient/tests/unit/identity/v3/test_access_rule.py +3 -3
- openstackclient/tests/unit/identity/v3/test_application_credential.py +4 -4
- openstackclient/tests/unit/identity/v3/test_credential.py +5 -5
- openstackclient/tests/unit/identity/v3/test_domain.py +5 -5
- openstackclient/tests/unit/identity/v3/test_endpoint.py +6 -6
- openstackclient/tests/unit/identity/v3/test_endpoint_group.py +1 -1
- openstackclient/tests/unit/identity/v3/test_group.py +12 -22
- openstackclient/tests/unit/identity/v3/test_identity_provider.py +303 -299
- openstackclient/tests/unit/identity/v3/test_implied_role.py +1 -1
- openstackclient/tests/unit/identity/v3/test_limit.py +5 -5
- openstackclient/tests/unit/identity/v3/test_mappings.py +163 -79
- openstackclient/tests/unit/identity/v3/test_project.py +28 -5
- openstackclient/tests/unit/identity/v3/test_protocol.py +3 -3
- openstackclient/tests/unit/identity/v3/test_region.py +5 -5
- openstackclient/tests/unit/identity/v3/test_registered_limit.py +5 -5
- openstackclient/tests/unit/identity/v3/test_role.py +8 -8
- openstackclient/tests/unit/identity/v3/test_role_assignment.py +1 -1
- openstackclient/tests/unit/identity/v3/test_service.py +5 -5
- openstackclient/tests/unit/identity/v3/test_token.py +2 -2
- openstackclient/tests/unit/identity/v3/test_trust.py +4 -4
- openstackclient/tests/unit/identity/v3/test_user.py +77 -10
- openstackclient/tests/unit/image/v2/test_image.py +11 -11
- openstackclient/tests/unit/image/v2/test_metadef_namespaces.py +105 -6
- openstackclient/tests/unit/network/test_common.py +0 -155
- openstackclient/tests/unit/network/v2/bgpvpn/__init__.py +0 -0
- openstackclient/tests/unit/network/v2/bgpvpn/fakes.py +179 -0
- openstackclient/tests/unit/network/v2/bgpvpn/test_bgpvpn.py +584 -0
- openstackclient/tests/unit/network/v2/bgpvpn/test_network_association.py +285 -0
- openstackclient/tests/unit/network/v2/bgpvpn/test_port_association.py +384 -0
- openstackclient/tests/unit/network/v2/bgpvpn/test_router_association.py +297 -0
- openstackclient/tests/unit/network/v2/fakes.py +5 -77
- openstackclient/tests/unit/network/v2/fwaas/__init__.py +0 -0
- openstackclient/tests/unit/network/v2/fwaas/test_group.py +923 -0
- openstackclient/tests/unit/network/v2/fwaas/test_policy.py +869 -0
- openstackclient/tests/unit/network/v2/fwaas/test_rule.py +1005 -0
- openstackclient/tests/unit/network/v2/taas/{test_osc_tap_flow.py → test_tap_flow.py} +18 -25
- openstackclient/tests/unit/network/v2/taas/{test_osc_tap_mirror.py → test_tap_mirror.py} +19 -29
- openstackclient/tests/unit/network/v2/taas/{test_osc_tap_service.py → test_tap_service.py} +19 -29
- openstackclient/tests/unit/network/v2/test_address_group.py +26 -2
- openstackclient/tests/unit/network/v2/test_address_scope.py +24 -0
- openstackclient/tests/unit/network/v2/{test_floating_ip_network.py → test_floating_ip.py} +27 -2
- openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py +37 -13
- openstackclient/tests/unit/network/v2/test_ip_availability.py +25 -0
- openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +29 -3
- openstackclient/tests/unit/network/v2/test_network.py +74 -12
- openstackclient/tests/unit/network/v2/test_network_agent.py +58 -5
- openstackclient/tests/unit/network/v2/test_network_auto_allocated_topology.py +3 -3
- openstackclient/tests/unit/network/v2/test_network_flavor.py +26 -2
- openstackclient/tests/unit/network/v2/test_network_flavor_profile.py +24 -0
- openstackclient/tests/unit/network/v2/test_network_meter.py +24 -0
- openstackclient/tests/unit/network/v2/test_network_qos_policy.py +25 -1
- openstackclient/tests/unit/network/v2/test_network_qos_rule.py +2 -2
- openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +24 -0
- openstackclient/tests/unit/network/v2/test_network_rbac.py +25 -1
- openstackclient/tests/unit/network/v2/test_network_segment.py +25 -1
- openstackclient/tests/unit/network/v2/test_network_segment_range.py +31 -10
- openstackclient/tests/unit/network/v2/test_network_trunk.py +1 -1
- openstackclient/tests/unit/network/v2/test_port.py +166 -0
- openstackclient/tests/unit/network/v2/test_router.py +36 -16
- openstackclient/tests/unit/network/v2/{test_security_group_network.py → test_security_group.py} +11 -8
- openstackclient/tests/unit/network/v2/{test_security_group_rule_network.py → test_security_group_rule.py} +28 -37
- openstackclient/tests/unit/network/v2/test_subnet.py +30 -5
- openstackclient/tests/unit/network/v2/test_subnet_pool.py +26 -1
- openstackclient/tests/unit/object/v1/fakes.py +8 -7
- openstackclient/tests/unit/object/v1/test_container.py +65 -101
- openstackclient/tests/unit/object/v1/test_container_all.py +8 -1
- openstackclient/tests/unit/object/v1/test_object.py +44 -84
- openstackclient/tests/unit/object/v1/test_object_all.py +8 -1
- openstackclient/tests/unit/test_hacking.py +108 -0
- openstackclient/tests/unit/volume/v2/fakes.py +21 -140
- openstackclient/tests/unit/volume/v2/test_volume_backup.py +6 -14
- openstackclient/tests/unit/volume/v2/test_volume_snapshot.py +8 -1
- openstackclient/tests/unit/volume/v2/test_volume_type.py +2 -4
- openstackclient/tests/unit/volume/v3/fakes.py +205 -100
- openstackclient/tests/unit/volume/v3/test_backup_record.py +114 -0
- openstackclient/tests/unit/volume/v3/test_consistency_group.py +720 -0
- openstackclient/tests/unit/volume/v3/test_consistency_group_snapshot.py +354 -0
- openstackclient/tests/unit/volume/v3/test_qos_specs.py +455 -0
- openstackclient/tests/unit/volume/v3/test_volume.py +60 -3
- openstackclient/tests/unit/volume/v3/test_volume_attachment.py +3 -1
- openstackclient/tests/unit/volume/v3/test_volume_backend.py +158 -0
- openstackclient/tests/unit/volume/v3/test_volume_backup.py +6 -14
- openstackclient/tests/unit/volume/v3/test_volume_group_type.py +65 -0
- openstackclient/tests/unit/volume/v3/test_volume_host.py +115 -0
- openstackclient/tests/unit/volume/v3/test_volume_snapshot.py +61 -1
- openstackclient/tests/unit/volume/v3/test_volume_type.py +2 -4
- openstackclient/volume/client.py +7 -3
- openstackclient/volume/v2/backup_record.py +15 -6
- openstackclient/volume/v2/consistency_group.py +29 -17
- openstackclient/volume/v2/consistency_group_snapshot.py +25 -10
- openstackclient/volume/v2/qos_specs.py +28 -17
- openstackclient/volume/v2/service.py +17 -6
- openstackclient/volume/v2/volume.py +60 -30
- openstackclient/volume/v2/volume_backend.py +19 -6
- openstackclient/volume/v2/volume_backup.py +48 -23
- openstackclient/volume/v2/volume_host.py +6 -4
- openstackclient/volume/v2/volume_snapshot.py +49 -24
- openstackclient/volume/v2/volume_transfer_request.py +31 -13
- openstackclient/volume/v2/volume_type.py +43 -24
- openstackclient/volume/v3/backup_record.py +94 -0
- openstackclient/volume/v3/block_storage_cleanup.py +11 -3
- openstackclient/volume/v3/block_storage_cluster.py +19 -7
- openstackclient/volume/v3/block_storage_log_level.py +15 -6
- openstackclient/volume/v3/block_storage_manage.py +10 -4
- openstackclient/volume/v3/block_storage_resource_filter.py +17 -5
- openstackclient/volume/v3/consistency_group.py +400 -0
- openstackclient/volume/v3/consistency_group_snapshot.py +225 -0
- openstackclient/volume/v3/qos_specs.py +389 -0
- openstackclient/volume/v3/service.py +16 -6
- openstackclient/volume/v3/volume.py +92 -40
- openstackclient/volume/v3/volume_attachment.py +47 -21
- openstackclient/volume/v3/volume_backend.py +130 -0
- openstackclient/volume/v3/volume_backup.py +55 -27
- openstackclient/volume/v3/volume_group.py +23 -13
- openstackclient/volume/v3/volume_group_snapshot.py +34 -17
- openstackclient/volume/v3/volume_group_type.py +27 -14
- openstackclient/volume/v3/volume_host.py +74 -0
- openstackclient/volume/v3/volume_message.py +18 -8
- openstackclient/volume/v3/volume_snapshot.py +70 -32
- openstackclient/volume/v3/volume_transfer_request.py +31 -13
- openstackclient/volume/v3/volume_type.py +42 -24
- {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/METADATA +7 -8
- python_openstackclient-10.1.0.dist-info/RECORD +524 -0
- {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/WHEEL +1 -1
- {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/entry_points.txt +77 -25
- {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/licenses/AUTHORS +9 -0
- python_openstackclient-10.1.0.dist-info/pbr.json +1 -0
- openstackclient/api/image_v1.py +0 -69
- openstackclient/api/image_v2.py +0 -79
- openstackclient/network/v2/floating_ip_pool.py +0 -38
- openstackclient/tests/functional/image/v1/test_image.py +0 -97
- openstackclient/tests/unit/api/test_image_v1.py +0 -96
- openstackclient/tests/unit/api/test_image_v2.py +0 -96
- openstackclient/tests/unit/network/v2/test_floating_ip_compute.py +0 -248
- openstackclient/tests/unit/network/v2/test_floating_ip_pool_compute.py +0 -49
- openstackclient/tests/unit/network/v2/test_floating_ip_pool_network.py +0 -39
- openstackclient/tests/unit/network/v2/test_network_compute.py +0 -404
- openstackclient/tests/unit/network/v2/test_security_group_compute.py +0 -392
- openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py +0 -555
- python_openstackclient-9.0.0.dist-info/RECORD +0 -499
- python_openstackclient-9.0.0.dist-info/pbr.json +0 -1
- /openstackclient/{tests/functional/image/v1 → network/v2/bgpvpn}/__init__.py +0 -0
- {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/licenses/LICENSE +0 -0
- {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/top_level.txt +0 -0
|
@@ -790,7 +790,7 @@ class TestDeleteSubnet(TestSubnet):
|
|
|
790
790
|
|
|
791
791
|
class TestListSubnet(TestSubnet):
|
|
792
792
|
# The subnets going to be listed up.
|
|
793
|
-
|
|
793
|
+
_subnets = network_fakes.FakeSubnet.create_subnets(count=3)
|
|
794
794
|
|
|
795
795
|
columns = (
|
|
796
796
|
'ID',
|
|
@@ -798,7 +798,8 @@ class TestListSubnet(TestSubnet):
|
|
|
798
798
|
'Network',
|
|
799
799
|
'Subnet',
|
|
800
800
|
)
|
|
801
|
-
columns_long =
|
|
801
|
+
columns_long = (
|
|
802
|
+
*columns,
|
|
802
803
|
'Project',
|
|
803
804
|
'DHCP',
|
|
804
805
|
'Name Servers',
|
|
@@ -811,7 +812,7 @@ class TestListSubnet(TestSubnet):
|
|
|
811
812
|
)
|
|
812
813
|
|
|
813
814
|
data = []
|
|
814
|
-
for subnet in
|
|
815
|
+
for subnet in _subnets:
|
|
815
816
|
data.append(
|
|
816
817
|
(
|
|
817
818
|
subnet.id,
|
|
@@ -822,7 +823,7 @@ class TestListSubnet(TestSubnet):
|
|
|
822
823
|
)
|
|
823
824
|
|
|
824
825
|
data_long = []
|
|
825
|
-
for subnet in
|
|
826
|
+
for subnet in _subnets:
|
|
826
827
|
data_long.append(
|
|
827
828
|
(
|
|
828
829
|
subnet.id,
|
|
@@ -847,7 +848,7 @@ class TestListSubnet(TestSubnet):
|
|
|
847
848
|
# Get the command object to test
|
|
848
849
|
self.cmd = subnet_v2.ListSubnet(self.app, None)
|
|
849
850
|
|
|
850
|
-
self.network_client.subnets.return_value = self.
|
|
851
|
+
self.network_client.subnets.return_value = self._subnets
|
|
851
852
|
|
|
852
853
|
def test_subnet_list_no_options(self):
|
|
853
854
|
arglist = []
|
|
@@ -877,6 +878,30 @@ class TestListSubnet(TestSubnet):
|
|
|
877
878
|
self.assertEqual(self.columns_long, columns)
|
|
878
879
|
self.assertCountEqual(self.data_long, list(data))
|
|
879
880
|
|
|
881
|
+
def test_subnet_list_pagination(self):
|
|
882
|
+
arglist = [
|
|
883
|
+
'--marker',
|
|
884
|
+
self._subnets[0].id,
|
|
885
|
+
'--limit',
|
|
886
|
+
'1',
|
|
887
|
+
]
|
|
888
|
+
verifylist = [
|
|
889
|
+
('marker', self._subnets[0].id),
|
|
890
|
+
('limit', 1),
|
|
891
|
+
]
|
|
892
|
+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
893
|
+
|
|
894
|
+
columns, data = self.cmd.take_action(parsed_args)
|
|
895
|
+
|
|
896
|
+
self.network_client.subnets.assert_called_once_with(
|
|
897
|
+
**{
|
|
898
|
+
'marker': self._subnets[0].id,
|
|
899
|
+
'limit': 1,
|
|
900
|
+
}
|
|
901
|
+
)
|
|
902
|
+
self.assertEqual(self.columns, columns)
|
|
903
|
+
self.assertEqual(self.data, list(data))
|
|
904
|
+
|
|
880
905
|
def test_subnet_list_ip_version(self):
|
|
881
906
|
arglist = [
|
|
882
907
|
'--ip-version',
|
|
@@ -471,7 +471,8 @@ class TestListSubnetPool(TestSubnetPool):
|
|
|
471
471
|
'Name',
|
|
472
472
|
'Prefixes',
|
|
473
473
|
)
|
|
474
|
-
columns_long =
|
|
474
|
+
columns_long = (
|
|
475
|
+
*columns,
|
|
475
476
|
'Default Prefix Length',
|
|
476
477
|
'Address Scope',
|
|
477
478
|
'Default Subnet Pool',
|
|
@@ -540,6 +541,30 @@ class TestListSubnetPool(TestSubnetPool):
|
|
|
540
541
|
self.assertEqual(self.columns_long, columns)
|
|
541
542
|
self.assertCountEqual(self.data_long, list(data))
|
|
542
543
|
|
|
544
|
+
def test_subnet_pool_list_pagination(self):
|
|
545
|
+
arglist = [
|
|
546
|
+
'--marker',
|
|
547
|
+
self._subnet_pools[0].id,
|
|
548
|
+
'--limit',
|
|
549
|
+
'1',
|
|
550
|
+
]
|
|
551
|
+
verifylist = [
|
|
552
|
+
('marker', self._subnet_pools[0].id),
|
|
553
|
+
('limit', 1),
|
|
554
|
+
]
|
|
555
|
+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
556
|
+
|
|
557
|
+
columns, data = self.cmd.take_action(parsed_args)
|
|
558
|
+
|
|
559
|
+
self.network_client.subnet_pools.assert_called_once_with(
|
|
560
|
+
**{
|
|
561
|
+
'marker': self._subnet_pools[0].id,
|
|
562
|
+
'limit': 1,
|
|
563
|
+
}
|
|
564
|
+
)
|
|
565
|
+
self.assertEqual(self.columns, columns)
|
|
566
|
+
self.assertEqual(self.data, list(data))
|
|
567
|
+
|
|
543
568
|
def test_subnet_pool_list_no_share(self):
|
|
544
569
|
arglist = [
|
|
545
570
|
'--no-share',
|
|
@@ -11,9 +11,8 @@
|
|
|
11
11
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
12
12
|
# License for the specific language governing permissions and limitations
|
|
13
13
|
# under the License.
|
|
14
|
-
#
|
|
15
14
|
|
|
16
|
-
from
|
|
15
|
+
from unittest import mock
|
|
17
16
|
|
|
18
17
|
from openstackclient.api import object_store_v1 as object_store
|
|
19
18
|
from openstackclient.tests.unit import utils
|
|
@@ -80,12 +79,14 @@ OBJECT_2 = {
|
|
|
80
79
|
object_upload_name = 'test-object-name'
|
|
81
80
|
|
|
82
81
|
|
|
83
|
-
class
|
|
82
|
+
class FakeClientMixin:
|
|
84
83
|
def setUp(self):
|
|
85
84
|
super().setUp()
|
|
86
85
|
|
|
87
|
-
self.app.client_manager.
|
|
88
|
-
|
|
89
|
-
session=self.app.client_manager.session,
|
|
90
|
-
endpoint=ENDPOINT,
|
|
86
|
+
self.app.client_manager.object_store = mock.Mock(
|
|
87
|
+
spec=object_store.APIv1
|
|
91
88
|
)
|
|
89
|
+
self.object_store_client = self.app.client_manager.object_store
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
class TestObjectV1(FakeClientMixin, utils.TestCommand): ...
|
|
@@ -14,48 +14,21 @@
|
|
|
14
14
|
#
|
|
15
15
|
|
|
16
16
|
import copy
|
|
17
|
-
from unittest import mock
|
|
18
17
|
|
|
19
|
-
from openstackclient.api import object_store_v1 as object_store
|
|
20
18
|
from openstackclient.object.v1 import container
|
|
21
19
|
from openstackclient.tests.unit.object.v1 import fakes as object_fakes
|
|
22
20
|
|
|
23
21
|
|
|
24
|
-
|
|
25
|
-
AUTH_URL = "http://0.0.0.0"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
class FakeClient:
|
|
29
|
-
def __init__(self, endpoint=None, **kwargs):
|
|
30
|
-
self.endpoint = AUTH_URL
|
|
31
|
-
self.token = AUTH_TOKEN
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
class TestContainer(object_fakes.TestObjectv1):
|
|
35
|
-
columns = ('Name',)
|
|
36
|
-
|
|
22
|
+
class TestContainerDelete(object_fakes.TestObjectV1):
|
|
37
23
|
def setUp(self):
|
|
38
24
|
super().setUp()
|
|
39
|
-
self.app.client_manager.object_store = object_store.APIv1(
|
|
40
|
-
session=mock.Mock(),
|
|
41
|
-
service_type="object-store",
|
|
42
|
-
)
|
|
43
|
-
self.api = self.app.client_manager.object_store
|
|
44
|
-
|
|
45
25
|
|
|
46
|
-
|
|
47
|
-
@mock.patch('openstackclient.api.object_store_v1.APIv1.object_list')
|
|
48
|
-
@mock.patch('openstackclient.api.object_store_v1.APIv1.container_delete')
|
|
49
|
-
class TestContainerDelete(TestContainer):
|
|
50
|
-
def setUp(self):
|
|
51
|
-
super().setUp()
|
|
26
|
+
self.object_store_client.container_delete.return_value = None
|
|
52
27
|
|
|
53
28
|
# Get the command object to test
|
|
54
29
|
self.cmd = container.DeleteContainer(self.app, None)
|
|
55
30
|
|
|
56
|
-
def test_container_delete(self
|
|
57
|
-
c_mock.return_value = None
|
|
58
|
-
|
|
31
|
+
def test_container_delete(self):
|
|
59
32
|
arglist = [
|
|
60
33
|
object_fakes.container_name,
|
|
61
34
|
]
|
|
@@ -68,16 +41,17 @@ class TestContainerDelete(TestContainer):
|
|
|
68
41
|
self.assertIsNone(self.cmd.take_action(parsed_args))
|
|
69
42
|
|
|
70
43
|
kwargs = {}
|
|
71
|
-
|
|
44
|
+
self.object_store_client.container_delete.assert_called_with(
|
|
72
45
|
container=object_fakes.container_name, **kwargs
|
|
73
46
|
)
|
|
74
|
-
self.
|
|
75
|
-
self.
|
|
47
|
+
self.object_store_client.object_list.assert_not_called()
|
|
48
|
+
self.object_store_client.object_delete.assert_not_called()
|
|
76
49
|
|
|
77
|
-
def test_recursive_delete(self
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
50
|
+
def test_recursive_delete(self):
|
|
51
|
+
self.object_store_client.object_delete.return_value = None
|
|
52
|
+
self.object_store_client.object_list.return_value = [
|
|
53
|
+
object_fakes.OBJECT
|
|
54
|
+
]
|
|
81
55
|
|
|
82
56
|
arglist = [
|
|
83
57
|
'--recursive',
|
|
@@ -91,20 +65,22 @@ class TestContainerDelete(TestContainer):
|
|
|
91
65
|
|
|
92
66
|
self.assertIsNone(self.cmd.take_action(parsed_args))
|
|
93
67
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
container=object_fakes.container_name, **kwargs
|
|
68
|
+
self.object_store_client.container_delete.assert_called_with(
|
|
69
|
+
container=object_fakes.container_name
|
|
97
70
|
)
|
|
98
|
-
|
|
99
|
-
|
|
71
|
+
self.object_store_client.object_list.assert_called_with(
|
|
72
|
+
container=object_fakes.container_name
|
|
73
|
+
)
|
|
74
|
+
self.object_store_client.object_delete.assert_called_with(
|
|
100
75
|
container=object_fakes.container_name,
|
|
101
76
|
object=object_fakes.OBJECT['name'],
|
|
102
77
|
)
|
|
103
78
|
|
|
104
|
-
def test_r_delete(self
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
79
|
+
def test_r_delete(self):
|
|
80
|
+
self.object_store_client.object_delete.return_value = None
|
|
81
|
+
self.object_store_client.object_list.return_value = [
|
|
82
|
+
object_fakes.OBJECT
|
|
83
|
+
]
|
|
108
84
|
|
|
109
85
|
arglist = [
|
|
110
86
|
'-r',
|
|
@@ -118,27 +94,29 @@ class TestContainerDelete(TestContainer):
|
|
|
118
94
|
|
|
119
95
|
self.assertIsNone(self.cmd.take_action(parsed_args))
|
|
120
96
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
container=object_fakes.container_name, **kwargs
|
|
97
|
+
self.object_store_client.container_delete.assert_called_with(
|
|
98
|
+
container=object_fakes.container_name
|
|
124
99
|
)
|
|
125
|
-
|
|
126
|
-
|
|
100
|
+
self.object_store_client.object_list.assert_called_with(
|
|
101
|
+
container=object_fakes.container_name
|
|
102
|
+
)
|
|
103
|
+
self.object_store_client.object_delete.assert_called_with(
|
|
127
104
|
container=object_fakes.container_name,
|
|
128
105
|
object=object_fakes.OBJECT['name'],
|
|
129
106
|
)
|
|
130
107
|
|
|
131
108
|
|
|
132
|
-
|
|
133
|
-
|
|
109
|
+
class TestContainerList(object_fakes.TestObjectV1):
|
|
110
|
+
columns = ('Name',)
|
|
111
|
+
|
|
134
112
|
def setUp(self):
|
|
135
113
|
super().setUp()
|
|
136
114
|
|
|
137
115
|
# Get the command object to test
|
|
138
116
|
self.cmd = container.ListContainer(self.app, None)
|
|
139
117
|
|
|
140
|
-
def test_object_list_containers_no_options(self
|
|
141
|
-
|
|
118
|
+
def test_object_list_containers_no_options(self):
|
|
119
|
+
self.object_store_client.container_list.return_value = [
|
|
142
120
|
copy.deepcopy(object_fakes.CONTAINER),
|
|
143
121
|
copy.deepcopy(object_fakes.CONTAINER_3),
|
|
144
122
|
copy.deepcopy(object_fakes.CONTAINER_2),
|
|
@@ -153,9 +131,7 @@ class TestContainerList(TestContainer):
|
|
|
153
131
|
# containing the data to be listed.
|
|
154
132
|
columns, data = self.cmd.take_action(parsed_args)
|
|
155
133
|
|
|
156
|
-
|
|
157
|
-
kwargs = {}
|
|
158
|
-
c_mock.assert_called_with(**kwargs)
|
|
134
|
+
self.object_store_client.container_list.assert_called_with()
|
|
159
135
|
|
|
160
136
|
self.assertEqual(self.columns, columns)
|
|
161
137
|
datalist = (
|
|
@@ -165,8 +141,8 @@ class TestContainerList(TestContainer):
|
|
|
165
141
|
)
|
|
166
142
|
self.assertEqual(datalist, tuple(data))
|
|
167
143
|
|
|
168
|
-
def test_object_list_containers_prefix(self
|
|
169
|
-
|
|
144
|
+
def test_object_list_containers_prefix(self):
|
|
145
|
+
self.object_store_client.container_list.return_value = [
|
|
170
146
|
copy.deepcopy(object_fakes.CONTAINER),
|
|
171
147
|
copy.deepcopy(object_fakes.CONTAINER_3),
|
|
172
148
|
]
|
|
@@ -185,11 +161,9 @@ class TestContainerList(TestContainer):
|
|
|
185
161
|
# containing the data to be listed.
|
|
186
162
|
columns, data = self.cmd.take_action(parsed_args)
|
|
187
163
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
}
|
|
192
|
-
c_mock.assert_called_with(**kwargs)
|
|
164
|
+
self.object_store_client.container_list.assert_called_with(
|
|
165
|
+
prefix='bit',
|
|
166
|
+
)
|
|
193
167
|
|
|
194
168
|
self.assertEqual(self.columns, columns)
|
|
195
169
|
datalist = (
|
|
@@ -198,8 +172,8 @@ class TestContainerList(TestContainer):
|
|
|
198
172
|
)
|
|
199
173
|
self.assertEqual(datalist, tuple(data))
|
|
200
174
|
|
|
201
|
-
def test_object_list_containers_marker(self
|
|
202
|
-
|
|
175
|
+
def test_object_list_containers_marker(self):
|
|
176
|
+
self.object_store_client.container_list.return_value = [
|
|
203
177
|
copy.deepcopy(object_fakes.CONTAINER),
|
|
204
178
|
copy.deepcopy(object_fakes.CONTAINER_3),
|
|
205
179
|
]
|
|
@@ -221,12 +195,10 @@ class TestContainerList(TestContainer):
|
|
|
221
195
|
# containing the data to be listed.
|
|
222
196
|
columns, data = self.cmd.take_action(parsed_args)
|
|
223
197
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
}
|
|
229
|
-
c_mock.assert_called_with(**kwargs)
|
|
198
|
+
self.object_store_client.container_list.assert_called_with(
|
|
199
|
+
marker=object_fakes.container_name,
|
|
200
|
+
end_marker=object_fakes.container_name_3,
|
|
201
|
+
)
|
|
230
202
|
|
|
231
203
|
self.assertEqual(self.columns, columns)
|
|
232
204
|
datalist = (
|
|
@@ -235,8 +207,8 @@ class TestContainerList(TestContainer):
|
|
|
235
207
|
)
|
|
236
208
|
self.assertEqual(datalist, tuple(data))
|
|
237
209
|
|
|
238
|
-
def test_object_list_containers_limit(self
|
|
239
|
-
|
|
210
|
+
def test_object_list_containers_limit(self):
|
|
211
|
+
self.object_store_client.container_list.return_value = [
|
|
240
212
|
copy.deepcopy(object_fakes.CONTAINER),
|
|
241
213
|
copy.deepcopy(object_fakes.CONTAINER_3),
|
|
242
214
|
]
|
|
@@ -255,11 +227,9 @@ class TestContainerList(TestContainer):
|
|
|
255
227
|
# containing the data to be listed.
|
|
256
228
|
columns, data = self.cmd.take_action(parsed_args)
|
|
257
229
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
}
|
|
262
|
-
c_mock.assert_called_with(**kwargs)
|
|
230
|
+
self.object_store_client.container_list.assert_called_with(
|
|
231
|
+
limit=2,
|
|
232
|
+
)
|
|
263
233
|
|
|
264
234
|
self.assertEqual(self.columns, columns)
|
|
265
235
|
datalist = (
|
|
@@ -268,8 +238,8 @@ class TestContainerList(TestContainer):
|
|
|
268
238
|
)
|
|
269
239
|
self.assertEqual(datalist, tuple(data))
|
|
270
240
|
|
|
271
|
-
def test_object_list_containers_long(self
|
|
272
|
-
|
|
241
|
+
def test_object_list_containers_long(self):
|
|
242
|
+
self.object_store_client.container_list.return_value = [
|
|
273
243
|
copy.deepcopy(object_fakes.CONTAINER),
|
|
274
244
|
copy.deepcopy(object_fakes.CONTAINER_3),
|
|
275
245
|
]
|
|
@@ -287,9 +257,7 @@ class TestContainerList(TestContainer):
|
|
|
287
257
|
# containing the data to be listed.
|
|
288
258
|
columns, data = self.cmd.take_action(parsed_args)
|
|
289
259
|
|
|
290
|
-
|
|
291
|
-
kwargs = {}
|
|
292
|
-
c_mock.assert_called_with(**kwargs)
|
|
260
|
+
self.object_store_client.container_list.assert_called_with()
|
|
293
261
|
|
|
294
262
|
collist = ('Name', 'Bytes', 'Count')
|
|
295
263
|
self.assertEqual(collist, columns)
|
|
@@ -307,8 +275,8 @@ class TestContainerList(TestContainer):
|
|
|
307
275
|
)
|
|
308
276
|
self.assertEqual(datalist, tuple(data))
|
|
309
277
|
|
|
310
|
-
def test_object_list_containers_all(self
|
|
311
|
-
|
|
278
|
+
def test_object_list_containers_all(self):
|
|
279
|
+
self.object_store_client.container_list.return_value = [
|
|
312
280
|
copy.deepcopy(object_fakes.CONTAINER),
|
|
313
281
|
copy.deepcopy(object_fakes.CONTAINER_2),
|
|
314
282
|
copy.deepcopy(object_fakes.CONTAINER_3),
|
|
@@ -327,11 +295,9 @@ class TestContainerList(TestContainer):
|
|
|
327
295
|
# containing the data to be listed.
|
|
328
296
|
columns, data = self.cmd.take_action(parsed_args)
|
|
329
297
|
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
}
|
|
334
|
-
c_mock.assert_called_with(**kwargs)
|
|
298
|
+
self.object_store_client.container_list.assert_called_with(
|
|
299
|
+
full_listing=True,
|
|
300
|
+
)
|
|
335
301
|
|
|
336
302
|
self.assertEqual(self.columns, columns)
|
|
337
303
|
datalist = (
|
|
@@ -342,16 +308,17 @@ class TestContainerList(TestContainer):
|
|
|
342
308
|
self.assertEqual(datalist, tuple(data))
|
|
343
309
|
|
|
344
310
|
|
|
345
|
-
|
|
346
|
-
class TestContainerShow(TestContainer):
|
|
311
|
+
class TestContainerShow(object_fakes.TestObjectV1):
|
|
347
312
|
def setUp(self):
|
|
348
313
|
super().setUp()
|
|
349
314
|
|
|
350
315
|
# Get the command object to test
|
|
351
316
|
self.cmd = container.ShowContainer(self.app, None)
|
|
352
317
|
|
|
353
|
-
def test_container_show(self
|
|
354
|
-
|
|
318
|
+
def test_container_show(self):
|
|
319
|
+
self.object_store_client.container_show.return_value = copy.deepcopy(
|
|
320
|
+
object_fakes.CONTAINER
|
|
321
|
+
)
|
|
355
322
|
|
|
356
323
|
arglist = [
|
|
357
324
|
object_fakes.container_name,
|
|
@@ -366,11 +333,8 @@ class TestContainerShow(TestContainer):
|
|
|
366
333
|
# data to be shown.
|
|
367
334
|
columns, data = self.cmd.take_action(parsed_args)
|
|
368
335
|
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
# lib.container.show_container(api, url, container)
|
|
372
|
-
c_mock.assert_called_with(
|
|
373
|
-
container=object_fakes.container_name, **kwargs
|
|
336
|
+
self.object_store_client.container_show.assert_called_with(
|
|
337
|
+
container=object_fakes.container_name,
|
|
374
338
|
)
|
|
375
339
|
|
|
376
340
|
collist = ('bytes', 'count', 'name')
|
|
@@ -13,17 +13,24 @@
|
|
|
13
13
|
|
|
14
14
|
import copy
|
|
15
15
|
|
|
16
|
+
from keystoneauth1 import session
|
|
16
17
|
from requests_mock.contrib import fixture
|
|
17
18
|
|
|
19
|
+
from openstackclient.api import object_store_v1 as object_store
|
|
18
20
|
from openstackclient.object.v1 import container as container_cmds
|
|
19
21
|
from openstackclient.tests.unit.object.v1 import fakes as object_fakes
|
|
20
22
|
|
|
21
23
|
|
|
22
|
-
class TestContainerAll(object_fakes.
|
|
24
|
+
class TestContainerAll(object_fakes.TestObjectV1):
|
|
23
25
|
def setUp(self):
|
|
24
26
|
super().setUp()
|
|
25
27
|
|
|
28
|
+
# these tests require a "real" client since we mock requests
|
|
26
29
|
self.requests_mock = self.useFixture(fixture.Fixture())
|
|
30
|
+
self.app.client_manager.object_store = object_store.APIv1(
|
|
31
|
+
session=session.Session(),
|
|
32
|
+
endpoint=object_fakes.ENDPOINT,
|
|
33
|
+
)
|
|
27
34
|
|
|
28
35
|
|
|
29
36
|
class TestContainerCreate(TestContainerAll):
|