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
|
@@ -11,19 +11,26 @@
|
|
|
11
11
|
# under the License.
|
|
12
12
|
#
|
|
13
13
|
|
|
14
|
+
import argparse
|
|
14
15
|
import logging
|
|
16
|
+
from collections.abc import Iterable, Sequence
|
|
17
|
+
from typing import Any
|
|
15
18
|
|
|
19
|
+
from openstack.network.v2 import service_profile as _service_profile
|
|
16
20
|
from osc_lib import exceptions
|
|
17
21
|
from osc_lib import utils
|
|
18
22
|
|
|
19
23
|
from openstackclient import command
|
|
24
|
+
from openstackclient.common import pagination
|
|
20
25
|
from openstackclient.i18n import _
|
|
21
26
|
from openstackclient.network import common
|
|
22
27
|
|
|
23
28
|
LOG = logging.getLogger(__name__)
|
|
24
29
|
|
|
25
30
|
|
|
26
|
-
def _get_columns(
|
|
31
|
+
def _get_columns(
|
|
32
|
+
item: _service_profile.ServiceProfile,
|
|
33
|
+
) -> tuple[tuple[str, ...], tuple[str, ...]]:
|
|
27
34
|
column_map = {
|
|
28
35
|
'is_enabled': 'enabled',
|
|
29
36
|
}
|
|
@@ -34,8 +41,10 @@ def _get_columns(item):
|
|
|
34
41
|
)
|
|
35
42
|
|
|
36
43
|
|
|
37
|
-
def _get_attrs(
|
|
38
|
-
|
|
44
|
+
def _get_attrs(
|
|
45
|
+
client_manager: Any, parsed_args: argparse.Namespace
|
|
46
|
+
) -> dict[str, Any]:
|
|
47
|
+
attrs: dict[str, Any] = {}
|
|
39
48
|
if parsed_args.description is not None:
|
|
40
49
|
attrs['description'] = parsed_args.description
|
|
41
50
|
if parsed_args.driver is not None:
|
|
@@ -50,14 +59,12 @@ def _get_attrs(client_manager, parsed_args):
|
|
|
50
59
|
return attrs
|
|
51
60
|
|
|
52
61
|
|
|
53
|
-
# TODO(ndahiwade): Use the SDK resource mapped attribute names once the
|
|
54
|
-
# OSC minimum requirements include SDK 1.0.
|
|
55
62
|
class CreateNetworkFlavorProfile(
|
|
56
63
|
command.ShowOne, common.NeutronCommandWithExtraArgs
|
|
57
64
|
):
|
|
58
65
|
_description = _("Create new network flavor profile")
|
|
59
66
|
|
|
60
|
-
def get_parser(self, prog_name):
|
|
67
|
+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
|
|
61
68
|
parser = super().get_parser(prog_name)
|
|
62
69
|
parser.add_argument(
|
|
63
70
|
'--description',
|
|
@@ -92,7 +99,9 @@ class CreateNetworkFlavorProfile(
|
|
|
92
99
|
|
|
93
100
|
return parser
|
|
94
101
|
|
|
95
|
-
def take_action(
|
|
102
|
+
def take_action(
|
|
103
|
+
self, parsed_args: argparse.Namespace
|
|
104
|
+
) -> tuple[Sequence[str], Iterable[Any]]:
|
|
96
105
|
client = self.app.client_manager.network
|
|
97
106
|
attrs = _get_attrs(self.app.client_manager, parsed_args)
|
|
98
107
|
attrs.update(
|
|
@@ -113,7 +122,7 @@ class CreateNetworkFlavorProfile(
|
|
|
113
122
|
class DeleteNetworkFlavorProfile(command.Command):
|
|
114
123
|
_description = _("Delete network flavor profile")
|
|
115
124
|
|
|
116
|
-
def get_parser(self, prog_name):
|
|
125
|
+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
|
|
117
126
|
parser = super().get_parser(prog_name)
|
|
118
127
|
|
|
119
128
|
parser.add_argument(
|
|
@@ -124,7 +133,7 @@ class DeleteNetworkFlavorProfile(command.Command):
|
|
|
124
133
|
)
|
|
125
134
|
return parser
|
|
126
135
|
|
|
127
|
-
def take_action(self, parsed_args):
|
|
136
|
+
def take_action(self, parsed_args: argparse.Namespace) -> None:
|
|
128
137
|
client = self.app.client_manager.network
|
|
129
138
|
result = 0
|
|
130
139
|
|
|
@@ -154,7 +163,14 @@ class DeleteNetworkFlavorProfile(command.Command):
|
|
|
154
163
|
class ListNetworkFlavorProfile(command.Lister):
|
|
155
164
|
_description = _("List network flavor profile(s)")
|
|
156
165
|
|
|
157
|
-
def
|
|
166
|
+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
|
|
167
|
+
parser = super().get_parser(prog_name)
|
|
168
|
+
pagination.add_marker_pagination_option_to_parser(parser)
|
|
169
|
+
return parser
|
|
170
|
+
|
|
171
|
+
def take_action(
|
|
172
|
+
self, parsed_args: argparse.Namespace
|
|
173
|
+
) -> tuple[tuple[str, ...], Iterable[tuple[Any, ...]]]:
|
|
158
174
|
client = self.app.client_manager.network
|
|
159
175
|
|
|
160
176
|
columns = (
|
|
@@ -172,7 +188,16 @@ class ListNetworkFlavorProfile(command.Lister):
|
|
|
172
188
|
'Description',
|
|
173
189
|
)
|
|
174
190
|
|
|
175
|
-
|
|
191
|
+
filters = {}
|
|
192
|
+
if parsed_args.marker is not None:
|
|
193
|
+
filters['marker'] = parsed_args.marker
|
|
194
|
+
if parsed_args.limit is not None:
|
|
195
|
+
filters['limit'] = parsed_args.limit
|
|
196
|
+
if parsed_args.max_items is not None:
|
|
197
|
+
filters['max_items'] = parsed_args.max_items
|
|
198
|
+
|
|
199
|
+
data = client.service_profiles(**filters)
|
|
200
|
+
|
|
176
201
|
return (
|
|
177
202
|
column_headers,
|
|
178
203
|
(
|
|
@@ -185,12 +210,10 @@ class ListNetworkFlavorProfile(command.Lister):
|
|
|
185
210
|
)
|
|
186
211
|
|
|
187
212
|
|
|
188
|
-
# TODO(ndahiwade): Use the SDK resource mapped attribute names once the
|
|
189
|
-
# OSC minimum requirements include SDK 1.0.
|
|
190
213
|
class SetNetworkFlavorProfile(common.NeutronCommandWithExtraArgs):
|
|
191
214
|
_description = _("Set network flavor profile properties")
|
|
192
215
|
|
|
193
|
-
def get_parser(self, prog_name):
|
|
216
|
+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
|
|
194
217
|
parser = super().get_parser(prog_name)
|
|
195
218
|
parser.add_argument(
|
|
196
219
|
'flavor_profile',
|
|
@@ -230,7 +253,7 @@ class SetNetworkFlavorProfile(common.NeutronCommandWithExtraArgs):
|
|
|
230
253
|
|
|
231
254
|
return parser
|
|
232
255
|
|
|
233
|
-
def take_action(self, parsed_args):
|
|
256
|
+
def take_action(self, parsed_args: argparse.Namespace) -> None:
|
|
234
257
|
client = self.app.client_manager.network
|
|
235
258
|
obj = client.find_service_profile(
|
|
236
259
|
parsed_args.flavor_profile, ignore_missing=False
|
|
@@ -246,7 +269,7 @@ class SetNetworkFlavorProfile(common.NeutronCommandWithExtraArgs):
|
|
|
246
269
|
class ShowNetworkFlavorProfile(command.ShowOne):
|
|
247
270
|
_description = _("Display network flavor profile details")
|
|
248
271
|
|
|
249
|
-
def get_parser(self, prog_name):
|
|
272
|
+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
|
|
250
273
|
parser = super().get_parser(prog_name)
|
|
251
274
|
parser.add_argument(
|
|
252
275
|
'flavor_profile',
|
|
@@ -255,7 +278,9 @@ class ShowNetworkFlavorProfile(command.ShowOne):
|
|
|
255
278
|
)
|
|
256
279
|
return parser
|
|
257
280
|
|
|
258
|
-
def take_action(
|
|
281
|
+
def take_action(
|
|
282
|
+
self, parsed_args: argparse.Namespace
|
|
283
|
+
) -> tuple[Sequence[str], Iterable[Any]]:
|
|
259
284
|
client = self.app.client_manager.network
|
|
260
285
|
obj = client.find_service_profile(
|
|
261
286
|
parsed_args.flavor_profile, ignore_missing=False
|
|
@@ -13,12 +13,17 @@
|
|
|
13
13
|
|
|
14
14
|
"""Metering Label Implementations"""
|
|
15
15
|
|
|
16
|
+
import argparse
|
|
16
17
|
import logging
|
|
18
|
+
from collections.abc import Iterable, Sequence
|
|
19
|
+
from typing import Any
|
|
17
20
|
|
|
21
|
+
from openstack.network.v2 import metering_label as _metering_label
|
|
18
22
|
from osc_lib import exceptions
|
|
19
23
|
from osc_lib import utils
|
|
20
24
|
|
|
21
25
|
from openstackclient import command
|
|
26
|
+
from openstackclient.common import pagination
|
|
22
27
|
from openstackclient.i18n import _
|
|
23
28
|
from openstackclient.identity import common as identity_common
|
|
24
29
|
from openstackclient.network import common
|
|
@@ -26,7 +31,9 @@ from openstackclient.network import common
|
|
|
26
31
|
LOG = logging.getLogger(__name__)
|
|
27
32
|
|
|
28
33
|
|
|
29
|
-
def _get_columns(
|
|
34
|
+
def _get_columns(
|
|
35
|
+
item: _metering_label.MeteringLabel,
|
|
36
|
+
) -> tuple[tuple[str, ...], tuple[str, ...]]:
|
|
30
37
|
column_map = {
|
|
31
38
|
'is_shared': 'shared',
|
|
32
39
|
}
|
|
@@ -36,8 +43,10 @@ def _get_columns(item):
|
|
|
36
43
|
)
|
|
37
44
|
|
|
38
45
|
|
|
39
|
-
def _get_attrs(
|
|
40
|
-
|
|
46
|
+
def _get_attrs(
|
|
47
|
+
client_manager: Any, parsed_args: argparse.Namespace
|
|
48
|
+
) -> dict[str, Any]:
|
|
49
|
+
attrs: dict[str, Any] = {}
|
|
41
50
|
|
|
42
51
|
if parsed_args.description is not None:
|
|
43
52
|
attrs['description'] = parsed_args.description
|
|
@@ -59,12 +68,10 @@ def _get_attrs(client_manager, parsed_args):
|
|
|
59
68
|
return attrs
|
|
60
69
|
|
|
61
70
|
|
|
62
|
-
# TODO(ankur-gupta-f): Use the SDK resource mapped attribute names once the
|
|
63
|
-
# OSC minimum requirements include SDK 1.0.
|
|
64
71
|
class CreateMeter(command.ShowOne, common.NeutronCommandWithExtraArgs):
|
|
65
72
|
_description = _("Create network meter")
|
|
66
73
|
|
|
67
|
-
def get_parser(self, prog_name):
|
|
74
|
+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
|
|
68
75
|
parser = super().get_parser(prog_name)
|
|
69
76
|
|
|
70
77
|
parser.add_argument(
|
|
@@ -99,7 +106,9 @@ class CreateMeter(command.ShowOne, common.NeutronCommandWithExtraArgs):
|
|
|
99
106
|
|
|
100
107
|
return parser
|
|
101
108
|
|
|
102
|
-
def take_action(
|
|
109
|
+
def take_action(
|
|
110
|
+
self, parsed_args: argparse.Namespace
|
|
111
|
+
) -> tuple[Sequence[str], Iterable[Any]]:
|
|
103
112
|
client = self.app.client_manager.network
|
|
104
113
|
attrs = _get_attrs(self.app.client_manager, parsed_args)
|
|
105
114
|
attrs.update(
|
|
@@ -112,12 +121,10 @@ class CreateMeter(command.ShowOne, common.NeutronCommandWithExtraArgs):
|
|
|
112
121
|
return (display_columns, data)
|
|
113
122
|
|
|
114
123
|
|
|
115
|
-
# TODO(ankur-gupta-f): Use the SDK resource mapped attribute names once the
|
|
116
|
-
# OSC minimum requirements include SDK 1.0.
|
|
117
124
|
class DeleteMeter(command.Command):
|
|
118
125
|
_description = _("Delete network meter")
|
|
119
126
|
|
|
120
|
-
def get_parser(self, prog_name):
|
|
127
|
+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
|
|
121
128
|
parser = super().get_parser(prog_name)
|
|
122
129
|
|
|
123
130
|
parser.add_argument(
|
|
@@ -128,7 +135,7 @@ class DeleteMeter(command.Command):
|
|
|
128
135
|
)
|
|
129
136
|
return parser
|
|
130
137
|
|
|
131
|
-
def take_action(self, parsed_args):
|
|
138
|
+
def take_action(self, parsed_args: argparse.Namespace) -> None:
|
|
132
139
|
client = self.app.client_manager.network
|
|
133
140
|
result = 0
|
|
134
141
|
|
|
@@ -154,7 +161,14 @@ class DeleteMeter(command.Command):
|
|
|
154
161
|
class ListMeter(command.Lister):
|
|
155
162
|
_description = _("List network meters")
|
|
156
163
|
|
|
157
|
-
def
|
|
164
|
+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
|
|
165
|
+
parser = super().get_parser(prog_name)
|
|
166
|
+
pagination.add_marker_pagination_option_to_parser(parser)
|
|
167
|
+
return parser
|
|
168
|
+
|
|
169
|
+
def take_action(
|
|
170
|
+
self, parsed_args: argparse.Namespace
|
|
171
|
+
) -> tuple[tuple[str, ...], Iterable[tuple[Any, ...]]]:
|
|
158
172
|
client = self.app.client_manager.network
|
|
159
173
|
|
|
160
174
|
columns = (
|
|
@@ -170,7 +184,15 @@ class ListMeter(command.Lister):
|
|
|
170
184
|
'Shared',
|
|
171
185
|
)
|
|
172
186
|
|
|
173
|
-
|
|
187
|
+
filters = {}
|
|
188
|
+
if parsed_args.marker is not None:
|
|
189
|
+
filters['marker'] = parsed_args.marker
|
|
190
|
+
if parsed_args.limit is not None:
|
|
191
|
+
filters['limit'] = parsed_args.limit
|
|
192
|
+
if parsed_args.max_items is not None:
|
|
193
|
+
filters['max_items'] = parsed_args.max_items
|
|
194
|
+
|
|
195
|
+
data = client.metering_labels(**filters)
|
|
174
196
|
return (
|
|
175
197
|
column_headers,
|
|
176
198
|
(
|
|
@@ -186,14 +208,16 @@ class ListMeter(command.Lister):
|
|
|
186
208
|
class ShowMeter(command.ShowOne):
|
|
187
209
|
_description = _("Show network meter")
|
|
188
210
|
|
|
189
|
-
def get_parser(self, prog_name):
|
|
211
|
+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
|
|
190
212
|
parser = super().get_parser(prog_name)
|
|
191
213
|
parser.add_argument(
|
|
192
214
|
'meter', metavar='<meter>', help=_('Meter to display (name or ID)')
|
|
193
215
|
)
|
|
194
216
|
return parser
|
|
195
217
|
|
|
196
|
-
def take_action(
|
|
218
|
+
def take_action(
|
|
219
|
+
self, parsed_args: argparse.Namespace
|
|
220
|
+
) -> tuple[Sequence[str], Iterable[Any]]:
|
|
197
221
|
client = self.app.client_manager.network
|
|
198
222
|
obj = client.find_metering_label(
|
|
199
223
|
parsed_args.meter, ignore_missing=False
|
|
@@ -13,13 +13,17 @@
|
|
|
13
13
|
|
|
14
14
|
"""Meter Rule Implementations"""
|
|
15
15
|
|
|
16
|
+
import argparse
|
|
16
17
|
import logging
|
|
17
|
-
import
|
|
18
|
+
from collections.abc import Iterable, Sequence
|
|
19
|
+
from typing import Any
|
|
18
20
|
|
|
21
|
+
from openstack.network.v2 import metering_label_rule as _metering_label_rule
|
|
19
22
|
from osc_lib import exceptions
|
|
20
23
|
from osc_lib import utils
|
|
21
24
|
|
|
22
25
|
from openstackclient import command
|
|
26
|
+
from openstackclient.common import pagination
|
|
23
27
|
from openstackclient.i18n import _
|
|
24
28
|
from openstackclient.identity import common as identity_common
|
|
25
29
|
from openstackclient.network import common
|
|
@@ -27,15 +31,19 @@ from openstackclient.network import common
|
|
|
27
31
|
LOG = logging.getLogger(__name__)
|
|
28
32
|
|
|
29
33
|
|
|
30
|
-
def _get_columns(
|
|
34
|
+
def _get_columns(
|
|
35
|
+
item: _metering_label_rule.MeteringLabelRule,
|
|
36
|
+
) -> tuple[tuple[str, ...], tuple[str, ...]]:
|
|
31
37
|
hidden_columns = ['location', 'tenant_id']
|
|
32
38
|
return utils.get_osc_show_columns_for_sdk_resource(
|
|
33
39
|
item, {}, hidden_columns
|
|
34
40
|
)
|
|
35
41
|
|
|
36
42
|
|
|
37
|
-
def _get_attrs(
|
|
38
|
-
|
|
43
|
+
def _get_attrs(
|
|
44
|
+
client_manager: Any, parsed_args: argparse.Namespace
|
|
45
|
+
) -> dict[str, Any]:
|
|
46
|
+
attrs: dict[str, Any] = {}
|
|
39
47
|
|
|
40
48
|
if parsed_args.exclude:
|
|
41
49
|
attrs['excluded'] = True
|
|
@@ -68,7 +76,7 @@ def _get_attrs(client_manager, parsed_args):
|
|
|
68
76
|
class CreateMeterRule(command.ShowOne, common.NeutronCommandWithExtraArgs):
|
|
69
77
|
_description = _("Create a new meter rule")
|
|
70
78
|
|
|
71
|
-
def get_parser(self, prog_name):
|
|
79
|
+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
|
|
72
80
|
parser = super().get_parser(prog_name)
|
|
73
81
|
|
|
74
82
|
parser.add_argument(
|
|
@@ -125,7 +133,9 @@ class CreateMeterRule(command.ShowOne, common.NeutronCommandWithExtraArgs):
|
|
|
125
133
|
|
|
126
134
|
return parser
|
|
127
135
|
|
|
128
|
-
def take_action(
|
|
136
|
+
def take_action(
|
|
137
|
+
self, parsed_args: argparse.Namespace
|
|
138
|
+
) -> tuple[Sequence[str], Iterable[Any]]:
|
|
129
139
|
client = self.app.client_manager.network
|
|
130
140
|
_meter = client.find_metering_label(
|
|
131
141
|
parsed_args.meter, ignore_missing=False
|
|
@@ -145,7 +155,7 @@ class CreateMeterRule(command.ShowOne, common.NeutronCommandWithExtraArgs):
|
|
|
145
155
|
class DeleteMeterRule(command.Command):
|
|
146
156
|
_description = _("Delete meter rule(s)")
|
|
147
157
|
|
|
148
|
-
def get_parser(self, prog_name):
|
|
158
|
+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
|
|
149
159
|
parser = super().get_parser(prog_name)
|
|
150
160
|
|
|
151
161
|
parser.add_argument(
|
|
@@ -157,7 +167,7 @@ class DeleteMeterRule(command.Command):
|
|
|
157
167
|
|
|
158
168
|
return parser
|
|
159
169
|
|
|
160
|
-
def take_action(self, parsed_args):
|
|
170
|
+
def take_action(self, parsed_args: argparse.Namespace) -> None:
|
|
161
171
|
client = self.app.client_manager.network
|
|
162
172
|
result = 0
|
|
163
173
|
|
|
@@ -183,7 +193,14 @@ class DeleteMeterRule(command.Command):
|
|
|
183
193
|
class ListMeterRule(command.Lister):
|
|
184
194
|
_description = _("List meter rules")
|
|
185
195
|
|
|
186
|
-
def
|
|
196
|
+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
|
|
197
|
+
parser = super().get_parser(prog_name)
|
|
198
|
+
pagination.add_marker_pagination_option_to_parser(parser)
|
|
199
|
+
return parser
|
|
200
|
+
|
|
201
|
+
def take_action(
|
|
202
|
+
self, parsed_args: argparse.Namespace
|
|
203
|
+
) -> tuple[tuple[str, ...], Iterable[tuple[Any, ...]]]:
|
|
187
204
|
client = self.app.client_manager.network
|
|
188
205
|
|
|
189
206
|
columns = (
|
|
@@ -202,7 +219,16 @@ class ListMeterRule(command.Lister):
|
|
|
202
219
|
'Source IP Prefix',
|
|
203
220
|
'Destination IP Prefix',
|
|
204
221
|
)
|
|
205
|
-
|
|
222
|
+
|
|
223
|
+
filters = {}
|
|
224
|
+
if parsed_args.marker is not None:
|
|
225
|
+
filters['marker'] = parsed_args.marker
|
|
226
|
+
if parsed_args.limit is not None:
|
|
227
|
+
filters['limit'] = parsed_args.limit
|
|
228
|
+
if parsed_args.max_items is not None:
|
|
229
|
+
filters['max_items'] = parsed_args.max_items
|
|
230
|
+
|
|
231
|
+
data = client.metering_label_rules(**filters)
|
|
206
232
|
return (
|
|
207
233
|
column_headers,
|
|
208
234
|
(
|
|
@@ -218,7 +244,7 @@ class ListMeterRule(command.Lister):
|
|
|
218
244
|
class ShowMeterRule(command.ShowOne):
|
|
219
245
|
_description = _("Display meter rules details")
|
|
220
246
|
|
|
221
|
-
def get_parser(self, prog_name):
|
|
247
|
+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
|
|
222
248
|
parser = super().get_parser(prog_name)
|
|
223
249
|
parser.add_argument(
|
|
224
250
|
'meter_rule_id',
|
|
@@ -227,7 +253,9 @@ class ShowMeterRule(command.ShowOne):
|
|
|
227
253
|
)
|
|
228
254
|
return parser
|
|
229
255
|
|
|
230
|
-
def take_action(
|
|
256
|
+
def take_action(
|
|
257
|
+
self, parsed_args: argparse.Namespace
|
|
258
|
+
) -> tuple[Sequence[str], Iterable[Any]]:
|
|
231
259
|
client = self.app.client_manager.network
|
|
232
260
|
obj = client.find_metering_label_rule(
|
|
233
261
|
parsed_args.meter_rule_id, ignore_missing=False
|
|
@@ -13,14 +13,18 @@
|
|
|
13
13
|
# License for the specific language governing permissions and limitations
|
|
14
14
|
# under the License.
|
|
15
15
|
|
|
16
|
+
import argparse
|
|
17
|
+
from collections.abc import Iterable, Sequence
|
|
16
18
|
import logging
|
|
17
|
-
|
|
19
|
+
from typing import Any
|
|
18
20
|
|
|
19
21
|
from cliff import columns as cliff_columns
|
|
22
|
+
from openstack.network.v2 import qos_policy as _qos_policy
|
|
20
23
|
from osc_lib import exceptions
|
|
21
24
|
from osc_lib import utils
|
|
22
25
|
|
|
23
26
|
from openstackclient import command
|
|
27
|
+
from openstackclient.common import pagination
|
|
24
28
|
from openstackclient.i18n import _
|
|
25
29
|
from openstackclient.identity import common as identity_common
|
|
26
30
|
from openstackclient.network import common
|
|
@@ -28,8 +32,8 @@ from openstackclient.network import common
|
|
|
28
32
|
LOG = logging.getLogger(__name__)
|
|
29
33
|
|
|
30
34
|
|
|
31
|
-
class RulesColumn(cliff_columns.FormattableColumn[
|
|
32
|
-
def human_readable(self):
|
|
35
|
+
class RulesColumn(cliff_columns.FormattableColumn[Any]):
|
|
36
|
+
def human_readable(self) -> str:
|
|
33
37
|
return '\n'.join(str(v) for v in self._value)
|
|
34
38
|
|
|
35
39
|
|
|
@@ -38,7 +42,9 @@ _formatters = {
|
|
|
38
42
|
}
|
|
39
43
|
|
|
40
44
|
|
|
41
|
-
def _get_columns(
|
|
45
|
+
def _get_columns(
|
|
46
|
+
item: _qos_policy.QoSPolicy,
|
|
47
|
+
) -> tuple[tuple[str, ...], tuple[str, ...]]:
|
|
42
48
|
column_map = {
|
|
43
49
|
'is_shared': 'shared',
|
|
44
50
|
}
|
|
@@ -48,7 +54,9 @@ def _get_columns(item):
|
|
|
48
54
|
)
|
|
49
55
|
|
|
50
56
|
|
|
51
|
-
def _get_attrs(
|
|
57
|
+
def _get_attrs(
|
|
58
|
+
client_manager: Any, parsed_args: argparse.Namespace
|
|
59
|
+
) -> dict[str, Any]:
|
|
52
60
|
attrs = {}
|
|
53
61
|
if 'name' in parsed_args and parsed_args.name is not None:
|
|
54
62
|
attrs['name'] = parsed_args.name
|
|
@@ -78,14 +86,12 @@ def _get_attrs(client_manager, parsed_args):
|
|
|
78
86
|
return attrs
|
|
79
87
|
|
|
80
88
|
|
|
81
|
-
# TODO(abhiraut): Use the SDK resource mapped attribute names once the
|
|
82
|
-
# OSC minimum requirements include SDK 1.0.
|
|
83
89
|
class CreateNetworkQosPolicy(
|
|
84
90
|
command.ShowOne, common.NeutronCommandWithExtraArgs
|
|
85
91
|
):
|
|
86
92
|
_description = _("Create a QoS policy")
|
|
87
93
|
|
|
88
|
-
def get_parser(self, prog_name):
|
|
94
|
+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
|
|
89
95
|
parser = super().get_parser(prog_name)
|
|
90
96
|
parser.add_argument(
|
|
91
97
|
'name', metavar='<name>', help=_("Name of QoS policy to create")
|
|
@@ -129,7 +135,9 @@ class CreateNetworkQosPolicy(
|
|
|
129
135
|
)
|
|
130
136
|
return parser
|
|
131
137
|
|
|
132
|
-
def take_action(
|
|
138
|
+
def take_action(
|
|
139
|
+
self, parsed_args: argparse.Namespace
|
|
140
|
+
) -> tuple[Sequence[str], Iterable[Any]]:
|
|
133
141
|
client = self.app.client_manager.network
|
|
134
142
|
attrs = _get_attrs(self.app.client_manager, parsed_args)
|
|
135
143
|
attrs.update(
|
|
@@ -144,7 +152,7 @@ class CreateNetworkQosPolicy(
|
|
|
144
152
|
class DeleteNetworkQosPolicy(command.Command):
|
|
145
153
|
_description = _("Delete Qos Policy(s)")
|
|
146
154
|
|
|
147
|
-
def get_parser(self, prog_name):
|
|
155
|
+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
|
|
148
156
|
parser = super().get_parser(prog_name)
|
|
149
157
|
parser.add_argument(
|
|
150
158
|
'policy',
|
|
@@ -154,7 +162,7 @@ class DeleteNetworkQosPolicy(command.Command):
|
|
|
154
162
|
)
|
|
155
163
|
return parser
|
|
156
164
|
|
|
157
|
-
def take_action(self, parsed_args):
|
|
165
|
+
def take_action(self, parsed_args: argparse.Namespace) -> None:
|
|
158
166
|
client = self.app.client_manager.network
|
|
159
167
|
result = 0
|
|
160
168
|
|
|
@@ -180,12 +188,10 @@ class DeleteNetworkQosPolicy(command.Command):
|
|
|
180
188
|
raise exceptions.CommandError(msg)
|
|
181
189
|
|
|
182
190
|
|
|
183
|
-
# TODO(abhiraut): Use only the SDK resource mapped attribute names once the
|
|
184
|
-
# OSC minimum requirements include SDK 1.0.
|
|
185
191
|
class ListNetworkQosPolicy(command.Lister):
|
|
186
192
|
_description = _("List QoS policies")
|
|
187
193
|
|
|
188
|
-
def get_parser(self, prog_name):
|
|
194
|
+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
|
|
189
195
|
parser = super().get_parser(prog_name)
|
|
190
196
|
parser.add_argument(
|
|
191
197
|
'--project',
|
|
@@ -207,9 +213,12 @@ class ListNetworkQosPolicy(command.Lister):
|
|
|
207
213
|
action='store_true',
|
|
208
214
|
help=_("List only QoS policies not shared between projects"),
|
|
209
215
|
)
|
|
216
|
+
pagination.add_marker_pagination_option_to_parser(parser)
|
|
210
217
|
return parser
|
|
211
218
|
|
|
212
|
-
def take_action(
|
|
219
|
+
def take_action(
|
|
220
|
+
self, parsed_args: argparse.Namespace
|
|
221
|
+
) -> tuple[tuple[str, ...], Iterable[tuple[Any, ...]]]:
|
|
213
222
|
client = self.app.client_manager.network
|
|
214
223
|
columns = (
|
|
215
224
|
'id',
|
|
@@ -225,7 +234,16 @@ class ListNetworkQosPolicy(command.Lister):
|
|
|
225
234
|
'Default',
|
|
226
235
|
'Project',
|
|
227
236
|
)
|
|
237
|
+
|
|
228
238
|
attrs = _get_attrs(self.app.client_manager, parsed_args)
|
|
239
|
+
|
|
240
|
+
if parsed_args.marker is not None:
|
|
241
|
+
attrs['marker'] = parsed_args.marker
|
|
242
|
+
if parsed_args.limit is not None:
|
|
243
|
+
attrs['limit'] = parsed_args.limit
|
|
244
|
+
if parsed_args.max_items is not None:
|
|
245
|
+
attrs['max_items'] = parsed_args.max_items
|
|
246
|
+
|
|
229
247
|
data = client.qos_policies(**attrs)
|
|
230
248
|
return (
|
|
231
249
|
column_headers,
|
|
@@ -240,12 +258,10 @@ class ListNetworkQosPolicy(command.Lister):
|
|
|
240
258
|
)
|
|
241
259
|
|
|
242
260
|
|
|
243
|
-
# TODO(abhiraut): Use the SDK resource mapped attribute names once the
|
|
244
|
-
# OSC minimum requirements include SDK 1.0.
|
|
245
261
|
class SetNetworkQosPolicy(common.NeutronCommandWithExtraArgs):
|
|
246
262
|
_description = _("Set QoS policy properties")
|
|
247
263
|
|
|
248
|
-
def get_parser(self, prog_name):
|
|
264
|
+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
|
|
249
265
|
parser = super().get_parser(prog_name)
|
|
250
266
|
parser.add_argument(
|
|
251
267
|
'policy',
|
|
@@ -284,7 +300,7 @@ class SetNetworkQosPolicy(common.NeutronCommandWithExtraArgs):
|
|
|
284
300
|
)
|
|
285
301
|
return parser
|
|
286
302
|
|
|
287
|
-
def take_action(self, parsed_args):
|
|
303
|
+
def take_action(self, parsed_args: argparse.Namespace) -> None:
|
|
288
304
|
client = self.app.client_manager.network
|
|
289
305
|
obj = client.find_qos_policy(parsed_args.policy, ignore_missing=False)
|
|
290
306
|
attrs = _get_attrs(self.app.client_manager, parsed_args)
|
|
@@ -297,7 +313,7 @@ class SetNetworkQosPolicy(common.NeutronCommandWithExtraArgs):
|
|
|
297
313
|
class ShowNetworkQosPolicy(command.ShowOne):
|
|
298
314
|
_description = _("Display QoS policy details")
|
|
299
315
|
|
|
300
|
-
def get_parser(self, prog_name):
|
|
316
|
+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
|
|
301
317
|
parser = super().get_parser(prog_name)
|
|
302
318
|
parser.add_argument(
|
|
303
319
|
'policy',
|
|
@@ -306,7 +322,9 @@ class ShowNetworkQosPolicy(command.ShowOne):
|
|
|
306
322
|
)
|
|
307
323
|
return parser
|
|
308
324
|
|
|
309
|
-
def take_action(
|
|
325
|
+
def take_action(
|
|
326
|
+
self, parsed_args: argparse.Namespace
|
|
327
|
+
) -> tuple[Sequence[str], Iterable[Any]]:
|
|
310
328
|
client = self.app.client_manager.network
|
|
311
329
|
obj = client.find_qos_policy(parsed_args.policy, ignore_missing=False)
|
|
312
330
|
display_columns, columns = _get_columns(obj)
|