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
|
@@ -60,7 +60,7 @@ class AddNetworkToAgent(command.Command):
|
|
|
60
60
|
_description = _("Add network to an agent")
|
|
61
61
|
|
|
62
62
|
def get_parser(self, prog_name):
|
|
63
|
-
parser = super(
|
|
63
|
+
parser = super().get_parser(prog_name)
|
|
64
64
|
parser.add_argument(
|
|
65
65
|
'--dhcp',
|
|
66
66
|
action='store_true',
|
|
@@ -99,7 +99,7 @@ class AddRouterToAgent(command.Command):
|
|
|
99
99
|
_description = _("Add router to an agent")
|
|
100
100
|
|
|
101
101
|
def get_parser(self, prog_name):
|
|
102
|
-
parser = super(
|
|
102
|
+
parser = super().get_parser(prog_name)
|
|
103
103
|
parser.add_argument(
|
|
104
104
|
'--l3', action='store_true', help=_('Add router to an L3 agent')
|
|
105
105
|
)
|
|
@@ -128,7 +128,7 @@ class DeleteNetworkAgent(command.Command):
|
|
|
128
128
|
_description = _("Delete network agent(s)")
|
|
129
129
|
|
|
130
130
|
def get_parser(self, prog_name):
|
|
131
|
-
parser = super(
|
|
131
|
+
parser = super().get_parser(prog_name)
|
|
132
132
|
parser.add_argument(
|
|
133
133
|
'network_agent',
|
|
134
134
|
metavar="<network-agent>",
|
|
@@ -168,7 +168,7 @@ class ListNetworkAgent(command.Lister):
|
|
|
168
168
|
_description = _("List network agents")
|
|
169
169
|
|
|
170
170
|
def get_parser(self, prog_name):
|
|
171
|
-
parser = super(
|
|
171
|
+
parser = super().get_parser(prog_name)
|
|
172
172
|
parser.add_argument(
|
|
173
173
|
'--agent-type',
|
|
174
174
|
metavar='<agent-type>',
|
|
@@ -293,7 +293,7 @@ class RemoveNetworkFromAgent(command.Command):
|
|
|
293
293
|
_description = _("Remove network from an agent.")
|
|
294
294
|
|
|
295
295
|
def get_parser(self, prog_name):
|
|
296
|
-
parser = super(
|
|
296
|
+
parser = super().get_parser(prog_name)
|
|
297
297
|
parser.add_argument(
|
|
298
298
|
'--dhcp',
|
|
299
299
|
action='store_true',
|
|
@@ -331,7 +331,7 @@ class RemoveRouterFromAgent(command.Command):
|
|
|
331
331
|
_description = _("Remove router from an agent")
|
|
332
332
|
|
|
333
333
|
def get_parser(self, prog_name):
|
|
334
|
-
parser = super(
|
|
334
|
+
parser = super().get_parser(prog_name)
|
|
335
335
|
parser.add_argument(
|
|
336
336
|
'--l3',
|
|
337
337
|
action='store_true',
|
|
@@ -364,7 +364,7 @@ class SetNetworkAgent(command.Command):
|
|
|
364
364
|
_description = _("Set network agent properties")
|
|
365
365
|
|
|
366
366
|
def get_parser(self, prog_name):
|
|
367
|
-
parser = super(
|
|
367
|
+
parser = super().get_parser(prog_name)
|
|
368
368
|
parser.add_argument(
|
|
369
369
|
'network_agent',
|
|
370
370
|
metavar="<network-agent>",
|
|
@@ -403,7 +403,7 @@ class ShowNetworkAgent(command.ShowOne):
|
|
|
403
403
|
_description = _("Display network agent details")
|
|
404
404
|
|
|
405
405
|
def get_parser(self, prog_name):
|
|
406
|
-
parser = super(
|
|
406
|
+
parser = super().get_parser(prog_name)
|
|
407
407
|
parser.add_argument(
|
|
408
408
|
'network_agent',
|
|
409
409
|
metavar="<network-agent>",
|
|
@@ -65,7 +65,7 @@ class CreateAutoAllocatedTopology(command.ShowOne):
|
|
|
65
65
|
_description = _("Create the auto allocated topology for project")
|
|
66
66
|
|
|
67
67
|
def get_parser(self, prog_name):
|
|
68
|
-
parser = super(
|
|
68
|
+
parser = super().get_parser(prog_name)
|
|
69
69
|
parser.add_argument(
|
|
70
70
|
'--project',
|
|
71
71
|
metavar='<project>',
|
|
@@ -126,7 +126,7 @@ class DeleteAutoAllocatedTopology(command.Command):
|
|
|
126
126
|
_description = _("Delete auto allocated topology for project")
|
|
127
127
|
|
|
128
128
|
def get_parser(self, prog_name):
|
|
129
|
-
parser = super(
|
|
129
|
+
parser = super().get_parser(prog_name)
|
|
130
130
|
parser.add_argument(
|
|
131
131
|
'--project',
|
|
132
132
|
metavar='<project>',
|
|
@@ -63,7 +63,7 @@ class AddNetworkFlavorToProfile(command.Command):
|
|
|
63
63
|
_description = _("Add a service profile to a network flavor")
|
|
64
64
|
|
|
65
65
|
def get_parser(self, prog_name):
|
|
66
|
-
parser = super(
|
|
66
|
+
parser = super().get_parser(prog_name)
|
|
67
67
|
parser.add_argument(
|
|
68
68
|
'flavor', metavar="<flavor>", help=_("Network flavor (name or ID)")
|
|
69
69
|
)
|
|
@@ -93,7 +93,7 @@ class CreateNetworkFlavor(command.ShowOne, common.NeutronCommandWithExtraArgs):
|
|
|
93
93
|
_description = _("Create new network flavor")
|
|
94
94
|
|
|
95
95
|
def get_parser(self, prog_name):
|
|
96
|
-
parser = super(
|
|
96
|
+
parser = super().get_parser(prog_name)
|
|
97
97
|
parser.add_argument(
|
|
98
98
|
'name', metavar="<name>", help=_("Name for the flavor")
|
|
99
99
|
)
|
|
@@ -146,7 +146,7 @@ class DeleteNetworkFlavor(command.Command):
|
|
|
146
146
|
_description = _("Delete network flavors")
|
|
147
147
|
|
|
148
148
|
def get_parser(self, prog_name):
|
|
149
|
-
parser = super(
|
|
149
|
+
parser = super().get_parser(prog_name)
|
|
150
150
|
|
|
151
151
|
parser.add_argument(
|
|
152
152
|
'flavor',
|
|
@@ -214,9 +214,7 @@ class RemoveNetworkFlavorFromProfile(command.Command):
|
|
|
214
214
|
_description = _("Remove service profile from network flavor")
|
|
215
215
|
|
|
216
216
|
def get_parser(self, prog_name):
|
|
217
|
-
parser = super(
|
|
218
|
-
prog_name
|
|
219
|
-
)
|
|
217
|
+
parser = super().get_parser(prog_name)
|
|
220
218
|
parser.add_argument(
|
|
221
219
|
'flavor', metavar="<flavor>", help=_("Network flavor (name or ID)")
|
|
222
220
|
)
|
|
@@ -246,7 +244,7 @@ class SetNetworkFlavor(common.NeutronCommandWithExtraArgs):
|
|
|
246
244
|
_description = _("Set network flavor properties")
|
|
247
245
|
|
|
248
246
|
def get_parser(self, prog_name):
|
|
249
|
-
parser = super(
|
|
247
|
+
parser = super().get_parser(prog_name)
|
|
250
248
|
parser.add_argument(
|
|
251
249
|
'flavor',
|
|
252
250
|
metavar="<flavor>",
|
|
@@ -290,7 +288,7 @@ class ShowNetworkFlavor(command.ShowOne):
|
|
|
290
288
|
_description = _("Display network flavor details")
|
|
291
289
|
|
|
292
290
|
def get_parser(self, prog_name):
|
|
293
|
-
parser = super(
|
|
291
|
+
parser = super().get_parser(prog_name)
|
|
294
292
|
parser.add_argument(
|
|
295
293
|
'flavor',
|
|
296
294
|
metavar='<flavor>',
|
|
@@ -67,7 +67,7 @@ class CreateNetworkFlavorProfile(
|
|
|
67
67
|
_description = _("Create new network flavor profile")
|
|
68
68
|
|
|
69
69
|
def get_parser(self, prog_name):
|
|
70
|
-
parser = super(
|
|
70
|
+
parser = super().get_parser(prog_name)
|
|
71
71
|
parser.add_argument(
|
|
72
72
|
'--project',
|
|
73
73
|
metavar="<project>",
|
|
@@ -129,7 +129,7 @@ class DeleteNetworkFlavorProfile(command.Command):
|
|
|
129
129
|
_description = _("Delete network flavor profile")
|
|
130
130
|
|
|
131
131
|
def get_parser(self, prog_name):
|
|
132
|
-
parser = super(
|
|
132
|
+
parser = super().get_parser(prog_name)
|
|
133
133
|
|
|
134
134
|
parser.add_argument(
|
|
135
135
|
'flavor_profile',
|
|
@@ -206,7 +206,7 @@ class SetNetworkFlavorProfile(common.NeutronCommandWithExtraArgs):
|
|
|
206
206
|
_description = _("Set network flavor profile properties")
|
|
207
207
|
|
|
208
208
|
def get_parser(self, prog_name):
|
|
209
|
-
parser = super(
|
|
209
|
+
parser = super().get_parser(prog_name)
|
|
210
210
|
parser.add_argument(
|
|
211
211
|
'flavor_profile',
|
|
212
212
|
metavar="<flavor-profile>",
|
|
@@ -263,7 +263,7 @@ class ShowNetworkFlavorProfile(command.ShowOne):
|
|
|
263
263
|
_description = _("Display network flavor profile details")
|
|
264
264
|
|
|
265
265
|
def get_parser(self, prog_name):
|
|
266
|
-
parser = super(
|
|
266
|
+
parser = super().get_parser(prog_name)
|
|
267
267
|
parser.add_argument(
|
|
268
268
|
'flavor_profile',
|
|
269
269
|
metavar='<flavor-profile>',
|
|
@@ -65,7 +65,7 @@ class CreateMeter(command.ShowOne, common.NeutronCommandWithExtraArgs):
|
|
|
65
65
|
_description = _("Create network meter")
|
|
66
66
|
|
|
67
67
|
def get_parser(self, prog_name):
|
|
68
|
-
parser = super(
|
|
68
|
+
parser = super().get_parser(prog_name)
|
|
69
69
|
|
|
70
70
|
parser.add_argument(
|
|
71
71
|
'--description',
|
|
@@ -118,7 +118,7 @@ class DeleteMeter(command.Command):
|
|
|
118
118
|
_description = _("Delete network meter")
|
|
119
119
|
|
|
120
120
|
def get_parser(self, prog_name):
|
|
121
|
-
parser = super(
|
|
121
|
+
parser = super().get_parser(prog_name)
|
|
122
122
|
|
|
123
123
|
parser.add_argument(
|
|
124
124
|
'meter',
|
|
@@ -187,7 +187,7 @@ class ShowMeter(command.ShowOne):
|
|
|
187
187
|
_description = _("Show network meter")
|
|
188
188
|
|
|
189
189
|
def get_parser(self, prog_name):
|
|
190
|
-
parser = super(
|
|
190
|
+
parser = super().get_parser(prog_name)
|
|
191
191
|
parser.add_argument(
|
|
192
192
|
'meter', metavar='<meter>', help=_('Meter to display (name or ID)')
|
|
193
193
|
)
|
|
@@ -69,7 +69,7 @@ class CreateMeterRule(command.ShowOne, common.NeutronCommandWithExtraArgs):
|
|
|
69
69
|
_description = _("Create a new meter rule")
|
|
70
70
|
|
|
71
71
|
def get_parser(self, prog_name):
|
|
72
|
-
parser = super(
|
|
72
|
+
parser = super().get_parser(prog_name)
|
|
73
73
|
|
|
74
74
|
parser.add_argument(
|
|
75
75
|
'--project',
|
|
@@ -146,7 +146,7 @@ class DeleteMeterRule(command.Command):
|
|
|
146
146
|
_description = _("Delete meter rule(s)")
|
|
147
147
|
|
|
148
148
|
def get_parser(self, prog_name):
|
|
149
|
-
parser = super(
|
|
149
|
+
parser = super().get_parser(prog_name)
|
|
150
150
|
|
|
151
151
|
parser.add_argument(
|
|
152
152
|
'meter_rule_id',
|
|
@@ -222,7 +222,7 @@ class ShowMeterRule(command.ShowOne):
|
|
|
222
222
|
_description = _("Display meter rules details")
|
|
223
223
|
|
|
224
224
|
def get_parser(self, prog_name):
|
|
225
|
-
parser = super(
|
|
225
|
+
parser = super().get_parser(prog_name)
|
|
226
226
|
parser.add_argument(
|
|
227
227
|
'meter_rule_id',
|
|
228
228
|
metavar='<meter-rule-id>',
|
|
@@ -85,7 +85,7 @@ class CreateNetworkQosPolicy(
|
|
|
85
85
|
_description = _("Create a QoS policy")
|
|
86
86
|
|
|
87
87
|
def get_parser(self, prog_name):
|
|
88
|
-
parser = super(
|
|
88
|
+
parser = super().get_parser(prog_name)
|
|
89
89
|
parser.add_argument(
|
|
90
90
|
'name', metavar='<name>', help=_("Name of QoS policy to create")
|
|
91
91
|
)
|
|
@@ -144,7 +144,7 @@ class DeleteNetworkQosPolicy(command.Command):
|
|
|
144
144
|
_description = _("Delete Qos Policy(s)")
|
|
145
145
|
|
|
146
146
|
def get_parser(self, prog_name):
|
|
147
|
-
parser = super(
|
|
147
|
+
parser = super().get_parser(prog_name)
|
|
148
148
|
parser.add_argument(
|
|
149
149
|
'policy',
|
|
150
150
|
metavar="<qos-policy>",
|
|
@@ -185,7 +185,7 @@ class ListNetworkQosPolicy(command.Lister):
|
|
|
185
185
|
_description = _("List QoS policies")
|
|
186
186
|
|
|
187
187
|
def get_parser(self, prog_name):
|
|
188
|
-
parser = super(
|
|
188
|
+
parser = super().get_parser(prog_name)
|
|
189
189
|
parser.add_argument(
|
|
190
190
|
'--project',
|
|
191
191
|
metavar='<project>',
|
|
@@ -244,7 +244,7 @@ class SetNetworkQosPolicy(common.NeutronCommandWithExtraArgs):
|
|
|
244
244
|
_description = _("Set QoS policy properties")
|
|
245
245
|
|
|
246
246
|
def get_parser(self, prog_name):
|
|
247
|
-
parser = super(
|
|
247
|
+
parser = super().get_parser(prog_name)
|
|
248
248
|
parser.add_argument(
|
|
249
249
|
'policy',
|
|
250
250
|
metavar="<qos-policy>",
|
|
@@ -296,7 +296,7 @@ class ShowNetworkQosPolicy(command.ShowOne):
|
|
|
296
296
|
_description = _("Display QoS policy details")
|
|
297
297
|
|
|
298
298
|
def get_parser(self, prog_name):
|
|
299
|
-
parser = super(
|
|
299
|
+
parser = super().get_parser(prog_name)
|
|
300
300
|
parser.add_argument(
|
|
301
301
|
'policy',
|
|
302
302
|
metavar="<qos-policy>",
|
|
@@ -159,10 +159,10 @@ def _get_item_properties(item, fields):
|
|
|
159
159
|
|
|
160
160
|
def _rule_action_call(client, action, rule_type):
|
|
161
161
|
rule_type = rule_type.replace('-', '_')
|
|
162
|
-
func_name = '
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
162
|
+
func_name = '{action}_qos_{rule_type}_rule'.format(
|
|
163
|
+
action=action,
|
|
164
|
+
rule_type=rule_type,
|
|
165
|
+
)
|
|
166
166
|
return getattr(client, func_name)
|
|
167
167
|
|
|
168
168
|
|
|
@@ -243,7 +243,7 @@ class CreateNetworkQosRule(
|
|
|
243
243
|
_description = _("Create new Network QoS rule")
|
|
244
244
|
|
|
245
245
|
def get_parser(self, prog_name):
|
|
246
|
-
parser = super(
|
|
246
|
+
parser = super().get_parser(prog_name)
|
|
247
247
|
parser.add_argument(
|
|
248
248
|
'qos_policy',
|
|
249
249
|
metavar='<qos-policy>',
|
|
@@ -289,7 +289,7 @@ class DeleteNetworkQosRule(command.Command):
|
|
|
289
289
|
_description = _("Delete Network QoS rule")
|
|
290
290
|
|
|
291
291
|
def get_parser(self, prog_name):
|
|
292
|
-
parser = super(
|
|
292
|
+
parser = super().get_parser(prog_name)
|
|
293
293
|
parser.add_argument(
|
|
294
294
|
'qos_policy',
|
|
295
295
|
metavar='<qos-policy>',
|
|
@@ -326,7 +326,7 @@ class ListNetworkQosRule(command.Lister):
|
|
|
326
326
|
_description = _("List Network QoS rules")
|
|
327
327
|
|
|
328
328
|
def get_parser(self, prog_name):
|
|
329
|
-
parser = super(
|
|
329
|
+
parser = super().get_parser(prog_name)
|
|
330
330
|
parser.add_argument(
|
|
331
331
|
'qos_policy',
|
|
332
332
|
metavar='<qos-policy>',
|
|
@@ -372,7 +372,7 @@ class SetNetworkQosRule(common.NeutronCommandWithExtraArgs):
|
|
|
372
372
|
_description = _("Set Network QoS rule properties")
|
|
373
373
|
|
|
374
374
|
def get_parser(self, prog_name):
|
|
375
|
-
parser = super(
|
|
375
|
+
parser = super().get_parser(prog_name)
|
|
376
376
|
parser.add_argument(
|
|
377
377
|
'qos_policy',
|
|
378
378
|
metavar='<qos-policy>',
|
|
@@ -418,7 +418,7 @@ class ShowNetworkQosRule(command.ShowOne):
|
|
|
418
418
|
_description = _("Display Network QoS rule details")
|
|
419
419
|
|
|
420
420
|
def get_parser(self, prog_name):
|
|
421
|
-
parser = super(
|
|
421
|
+
parser = super().get_parser(prog_name)
|
|
422
422
|
parser.add_argument(
|
|
423
423
|
'qos_policy',
|
|
424
424
|
metavar='<qos-policy>',
|
|
@@ -83,7 +83,7 @@ class ShowNetworkQosRuleType(command.ShowOne):
|
|
|
83
83
|
_description = _("Show details about supported QoS rule type")
|
|
84
84
|
|
|
85
85
|
def get_parser(self, prog_name):
|
|
86
|
-
parser = super(
|
|
86
|
+
parser = super().get_parser(prog_name)
|
|
87
87
|
parser.add_argument(
|
|
88
88
|
'rule_type',
|
|
89
89
|
metavar="<qos-rule-type-name>",
|
|
@@ -96,7 +96,7 @@ class CreateNetworkRBAC(command.ShowOne, common.NeutronCommandWithExtraArgs):
|
|
|
96
96
|
_description = _("Create network RBAC policy")
|
|
97
97
|
|
|
98
98
|
def get_parser(self, prog_name):
|
|
99
|
-
parser = super(
|
|
99
|
+
parser = super().get_parser(prog_name)
|
|
100
100
|
parser.add_argument(
|
|
101
101
|
'rbac_object',
|
|
102
102
|
metavar="<rbac-object>",
|
|
@@ -182,7 +182,7 @@ class DeleteNetworkRBAC(command.Command):
|
|
|
182
182
|
_description = _("Delete network RBAC policy(s)")
|
|
183
183
|
|
|
184
184
|
def get_parser(self, prog_name):
|
|
185
|
-
parser = super(
|
|
185
|
+
parser = super().get_parser(prog_name)
|
|
186
186
|
parser.add_argument(
|
|
187
187
|
'rbac_policy',
|
|
188
188
|
metavar="<rbac-policy>",
|
|
@@ -221,7 +221,7 @@ class ListNetworkRBAC(command.Lister):
|
|
|
221
221
|
_description = _("List network RBAC policies")
|
|
222
222
|
|
|
223
223
|
def get_parser(self, prog_name):
|
|
224
|
-
parser = super(
|
|
224
|
+
parser = super().get_parser(prog_name)
|
|
225
225
|
parser.add_argument(
|
|
226
226
|
'--type',
|
|
227
227
|
metavar='<type>',
|
|
@@ -315,7 +315,7 @@ class SetNetworkRBAC(common.NeutronCommandWithExtraArgs):
|
|
|
315
315
|
_description = _("Set network RBAC policy properties")
|
|
316
316
|
|
|
317
317
|
def get_parser(self, prog_name):
|
|
318
|
-
parser = super(
|
|
318
|
+
parser = super().get_parser(prog_name)
|
|
319
319
|
parser.add_argument(
|
|
320
320
|
'rbac_policy',
|
|
321
321
|
metavar="<rbac-policy>",
|
|
@@ -364,7 +364,7 @@ class ShowNetworkRBAC(command.ShowOne):
|
|
|
364
364
|
_description = _("Display network RBAC policy details")
|
|
365
365
|
|
|
366
366
|
def get_parser(self, prog_name):
|
|
367
|
-
parser = super(
|
|
367
|
+
parser = super().get_parser(prog_name)
|
|
368
368
|
parser.add_argument(
|
|
369
369
|
'rbac_policy',
|
|
370
370
|
metavar="<rbac-policy>",
|
|
@@ -39,7 +39,7 @@ class CreateNetworkSegment(
|
|
|
39
39
|
_description = _("Create new network segment")
|
|
40
40
|
|
|
41
41
|
def get_parser(self, prog_name):
|
|
42
|
-
parser = super(
|
|
42
|
+
parser = super().get_parser(prog_name)
|
|
43
43
|
parser.add_argument(
|
|
44
44
|
'name', metavar='<name>', help=_('New network segment name')
|
|
45
45
|
)
|
|
@@ -109,7 +109,7 @@ class DeleteNetworkSegment(command.Command):
|
|
|
109
109
|
_description = _("Delete network segment(s)")
|
|
110
110
|
|
|
111
111
|
def get_parser(self, prog_name):
|
|
112
|
-
parser = super(
|
|
112
|
+
parser = super().get_parser(prog_name)
|
|
113
113
|
parser.add_argument(
|
|
114
114
|
'network_segment',
|
|
115
115
|
metavar='<network-segment>',
|
|
@@ -150,7 +150,7 @@ class ListNetworkSegment(command.Lister):
|
|
|
150
150
|
_description = _("List network segments")
|
|
151
151
|
|
|
152
152
|
def get_parser(self, prog_name):
|
|
153
|
-
parser = super(
|
|
153
|
+
parser = super().get_parser(prog_name)
|
|
154
154
|
parser.add_argument(
|
|
155
155
|
'--long',
|
|
156
156
|
action='store_true',
|
|
@@ -213,7 +213,7 @@ class SetNetworkSegment(common.NeutronCommandWithExtraArgs):
|
|
|
213
213
|
_description = _("Set network segment properties")
|
|
214
214
|
|
|
215
215
|
def get_parser(self, prog_name):
|
|
216
|
-
parser = super(
|
|
216
|
+
parser = super().get_parser(prog_name)
|
|
217
217
|
parser.add_argument(
|
|
218
218
|
'network_segment',
|
|
219
219
|
metavar='<network-segment>',
|
|
@@ -251,7 +251,7 @@ class ShowNetworkSegment(command.ShowOne):
|
|
|
251
251
|
_description = _("Display network segment details")
|
|
252
252
|
|
|
253
253
|
def get_parser(self, prog_name):
|
|
254
|
-
parser = super(
|
|
254
|
+
parser = super().get_parser(prog_name)
|
|
255
255
|
parser.add_argument(
|
|
256
256
|
'network_segment',
|
|
257
257
|
metavar='<network-segment>',
|
|
@@ -43,8 +43,8 @@ def _get_ranges(item):
|
|
|
43
43
|
item = sorted([int(i) for i in item])
|
|
44
44
|
for a, b in itertools.groupby(enumerate(item), lambda xy: xy[1] - xy[0]):
|
|
45
45
|
b = list(b)
|
|
46
|
-
yield
|
|
47
|
-
b[0][1]
|
|
46
|
+
yield (
|
|
47
|
+
f"{b[0][1]}-{b[-1][1]}" if b[0][1] != b[-1][1] else str(b[0][1])
|
|
48
48
|
)
|
|
49
49
|
|
|
50
50
|
|
|
@@ -98,7 +98,7 @@ class CreateNetworkSegmentRange(
|
|
|
98
98
|
_description = _("Create new network segment range")
|
|
99
99
|
|
|
100
100
|
def get_parser(self, prog_name):
|
|
101
|
-
parser = super(
|
|
101
|
+
parser = super().get_parser(prog_name)
|
|
102
102
|
shared_group = parser.add_mutually_exclusive_group()
|
|
103
103
|
shared_group.add_argument(
|
|
104
104
|
"--private",
|
|
@@ -254,7 +254,7 @@ class DeleteNetworkSegmentRange(command.Command):
|
|
|
254
254
|
_description = _("Delete network segment range(s)")
|
|
255
255
|
|
|
256
256
|
def get_parser(self, prog_name):
|
|
257
|
-
parser = super(
|
|
257
|
+
parser = super().get_parser(prog_name)
|
|
258
258
|
parser.add_argument(
|
|
259
259
|
'network_segment_range',
|
|
260
260
|
metavar='<network-segment-range>',
|
|
@@ -307,7 +307,7 @@ class ListNetworkSegmentRange(command.Lister):
|
|
|
307
307
|
_description = _("List network segment ranges")
|
|
308
308
|
|
|
309
309
|
def get_parser(self, prog_name):
|
|
310
|
-
parser = super(
|
|
310
|
+
parser = super().get_parser(prog_name)
|
|
311
311
|
parser.add_argument(
|
|
312
312
|
'--long',
|
|
313
313
|
action='store_true',
|
|
@@ -423,7 +423,7 @@ class SetNetworkSegmentRange(common.NeutronCommandWithExtraArgs):
|
|
|
423
423
|
_description = _("Set network segment range properties")
|
|
424
424
|
|
|
425
425
|
def get_parser(self, prog_name):
|
|
426
|
-
parser = super(
|
|
426
|
+
parser = super().get_parser(prog_name)
|
|
427
427
|
parser.add_argument(
|
|
428
428
|
'network_segment_range',
|
|
429
429
|
metavar='<network-segment-range>',
|
|
@@ -488,7 +488,7 @@ class ShowNetworkSegmentRange(command.ShowOne):
|
|
|
488
488
|
_description = _("Display network segment range details")
|
|
489
489
|
|
|
490
490
|
def get_parser(self, prog_name):
|
|
491
|
-
parser = super(
|
|
491
|
+
parser = super().get_parser(prog_name)
|
|
492
492
|
parser.add_argument(
|
|
493
493
|
'network_segment_range',
|
|
494
494
|
metavar='<network-segment-range>',
|
|
@@ -43,7 +43,7 @@ class CreateNetworkTrunk(command.ShowOne):
|
|
|
43
43
|
"""Create a network trunk for a given project"""
|
|
44
44
|
|
|
45
45
|
def get_parser(self, prog_name):
|
|
46
|
-
parser = super(
|
|
46
|
+
parser = super().get_parser(prog_name)
|
|
47
47
|
parser.add_argument(
|
|
48
48
|
'name', metavar='<name>', help=_("Name of the trunk to create")
|
|
49
49
|
)
|
|
@@ -100,7 +100,7 @@ class DeleteNetworkTrunk(command.Command):
|
|
|
100
100
|
"""Delete a given network trunk"""
|
|
101
101
|
|
|
102
102
|
def get_parser(self, prog_name):
|
|
103
|
-
parser = super(
|
|
103
|
+
parser = super().get_parser(prog_name)
|
|
104
104
|
parser.add_argument(
|
|
105
105
|
'trunk',
|
|
106
106
|
metavar="<trunk>",
|
|
@@ -138,7 +138,7 @@ class ListNetworkTrunk(command.Lister):
|
|
|
138
138
|
"""List all network trunks"""
|
|
139
139
|
|
|
140
140
|
def get_parser(self, prog_name):
|
|
141
|
-
parser = super(
|
|
141
|
+
parser = super().get_parser(prog_name)
|
|
142
142
|
parser.add_argument(
|
|
143
143
|
'--long',
|
|
144
144
|
action='store_true',
|
|
@@ -177,7 +177,7 @@ class SetNetworkTrunk(command.Command):
|
|
|
177
177
|
"""Set network trunk properties"""
|
|
178
178
|
|
|
179
179
|
def get_parser(self, prog_name):
|
|
180
|
-
parser = super(
|
|
180
|
+
parser = super().get_parser(prog_name)
|
|
181
181
|
parser.add_argument(
|
|
182
182
|
'trunk', metavar="<trunk>", help=_("Trunk to modify (name or ID)")
|
|
183
183
|
)
|
|
@@ -242,7 +242,7 @@ class ShowNetworkTrunk(command.ShowOne):
|
|
|
242
242
|
"""Show information of a given network trunk"""
|
|
243
243
|
|
|
244
244
|
def get_parser(self, prog_name):
|
|
245
|
-
parser = super(
|
|
245
|
+
parser = super().get_parser(prog_name)
|
|
246
246
|
parser.add_argument(
|
|
247
247
|
'trunk', metavar="<trunk>", help=_("Trunk to display (name or ID)")
|
|
248
248
|
)
|
|
@@ -263,7 +263,7 @@ class ListNetworkSubport(command.Lister):
|
|
|
263
263
|
"""List all subports for a given network trunk"""
|
|
264
264
|
|
|
265
265
|
def get_parser(self, prog_name):
|
|
266
|
-
parser = super(
|
|
266
|
+
parser = super().get_parser(prog_name)
|
|
267
267
|
parser.add_argument(
|
|
268
268
|
'--trunk',
|
|
269
269
|
required=True,
|
|
@@ -294,7 +294,7 @@ class UnsetNetworkTrunk(command.Command):
|
|
|
294
294
|
"""Unset subports from a given network trunk"""
|
|
295
295
|
|
|
296
296
|
def get_parser(self, prog_name):
|
|
297
|
-
parser = super(
|
|
297
|
+
parser = super().get_parser(prog_name)
|
|
298
298
|
parser.add_argument(
|
|
299
299
|
'trunk',
|
|
300
300
|
metavar="<trunk>",
|
|
@@ -205,6 +205,10 @@ def _get_attrs(client_manager, parsed_args):
|
|
|
205
205
|
and parsed_args.numa_policy_preferred
|
|
206
206
|
):
|
|
207
207
|
attrs['numa_affinity_policy'] = 'preferred'
|
|
208
|
+
elif (
|
|
209
|
+
'numa_policy_socket' in parsed_args and parsed_args.numa_policy_socket
|
|
210
|
+
):
|
|
211
|
+
attrs['numa_affinity_policy'] = 'socket'
|
|
208
212
|
elif (
|
|
209
213
|
'numa_policy_legacy' in parsed_args and parsed_args.numa_policy_legacy
|
|
210
214
|
):
|
|
@@ -280,7 +284,7 @@ def _prepare_filter_fixed_ips(client_manager, parsed_args):
|
|
|
280
284
|
return ips
|
|
281
285
|
|
|
282
286
|
|
|
283
|
-
def _add_updatable_args(parser):
|
|
287
|
+
def _add_updatable_args(parser, create=False):
|
|
284
288
|
parser.add_argument(
|
|
285
289
|
'--description',
|
|
286
290
|
metavar='<description>',
|
|
@@ -292,7 +296,11 @@ def _add_updatable_args(parser):
|
|
|
292
296
|
parser.add_argument(
|
|
293
297
|
'--mac-address',
|
|
294
298
|
metavar='<mac-address>',
|
|
295
|
-
help=
|
|
299
|
+
help=(
|
|
300
|
+
_("MAC address of this port")
|
|
301
|
+
if create
|
|
302
|
+
else _("MAC address of this port (admin only)")
|
|
303
|
+
),
|
|
296
304
|
)
|
|
297
305
|
parser.add_argument(
|
|
298
306
|
'--device-owner',
|
|
@@ -354,6 +362,11 @@ def _add_updatable_args(parser):
|
|
|
354
362
|
action='store_true',
|
|
355
363
|
help=_("NUMA affinity policy preferred to schedule this port"),
|
|
356
364
|
)
|
|
365
|
+
numa_affinity_policy_group.add_argument(
|
|
366
|
+
'--numa-policy-socket',
|
|
367
|
+
action='store_true',
|
|
368
|
+
help=_("NUMA affinity policy socket to schedule this port"),
|
|
369
|
+
)
|
|
357
370
|
numa_affinity_policy_group.add_argument(
|
|
358
371
|
'--numa-policy-legacy',
|
|
359
372
|
action='store_true',
|
|
@@ -435,7 +448,7 @@ class CreatePort(command.ShowOne, common.NeutronCommandWithExtraArgs):
|
|
|
435
448
|
_description = _("Create a new port")
|
|
436
449
|
|
|
437
450
|
def get_parser(self, prog_name):
|
|
438
|
-
parser = super(
|
|
451
|
+
parser = super().get_parser(prog_name)
|
|
439
452
|
|
|
440
453
|
parser.add_argument(
|
|
441
454
|
'--network',
|
|
@@ -443,7 +456,7 @@ class CreatePort(command.ShowOne, common.NeutronCommandWithExtraArgs):
|
|
|
443
456
|
required=True,
|
|
444
457
|
help=_("Network this port belongs to (name or ID)"),
|
|
445
458
|
)
|
|
446
|
-
_add_updatable_args(parser)
|
|
459
|
+
_add_updatable_args(parser, create=True)
|
|
447
460
|
fixed_ip = parser.add_mutually_exclusive_group()
|
|
448
461
|
fixed_ip.add_argument(
|
|
449
462
|
'--fixed-ip',
|
|
@@ -672,7 +685,7 @@ class DeletePort(command.Command):
|
|
|
672
685
|
_description = _("Delete port(s)")
|
|
673
686
|
|
|
674
687
|
def get_parser(self, prog_name):
|
|
675
|
-
parser = super(
|
|
688
|
+
parser = super().get_parser(prog_name)
|
|
676
689
|
parser.add_argument(
|
|
677
690
|
'port',
|
|
678
691
|
metavar="<port>",
|
|
@@ -714,7 +727,7 @@ class ListPort(command.Lister):
|
|
|
714
727
|
_description = _("List ports")
|
|
715
728
|
|
|
716
729
|
def get_parser(self, prog_name):
|
|
717
|
-
parser = super(
|
|
730
|
+
parser = super().get_parser(prog_name)
|
|
718
731
|
parser.add_argument(
|
|
719
732
|
'--device-owner',
|
|
720
733
|
metavar='<device-owner>',
|
|
@@ -831,9 +844,10 @@ class ListPort(command.Lister):
|
|
|
831
844
|
)
|
|
832
845
|
filters['device_id'] = _router.id
|
|
833
846
|
if parsed_args.server:
|
|
834
|
-
compute_client = self.app.client_manager.compute
|
|
835
|
-
server =
|
|
836
|
-
|
|
847
|
+
compute_client = self.app.client_manager.sdk_connection.compute
|
|
848
|
+
server = compute_client.find_server(
|
|
849
|
+
parsed_args.server,
|
|
850
|
+
ignore_missing=False,
|
|
837
851
|
)
|
|
838
852
|
filters['device_id'] = server.id
|
|
839
853
|
if parsed_args.host:
|
|
@@ -887,7 +901,7 @@ class SetPort(common.NeutronCommandWithExtraArgs):
|
|
|
887
901
|
_description = _("Set port properties")
|
|
888
902
|
|
|
889
903
|
def get_parser(self, prog_name):
|
|
890
|
-
parser = super(
|
|
904
|
+
parser = super().get_parser(prog_name)
|
|
891
905
|
_add_updatable_args(parser)
|
|
892
906
|
admin_group = parser.add_mutually_exclusive_group()
|
|
893
907
|
admin_group.add_argument(
|
|
@@ -1126,7 +1140,7 @@ class ShowPort(command.ShowOne):
|
|
|
1126
1140
|
_description = _("Display port details")
|
|
1127
1141
|
|
|
1128
1142
|
def get_parser(self, prog_name):
|
|
1129
|
-
parser = super(
|
|
1143
|
+
parser = super().get_parser(prog_name)
|
|
1130
1144
|
parser.add_argument(
|
|
1131
1145
|
'port', metavar="<port>", help=_("Port to display (name or ID)")
|
|
1132
1146
|
)
|
|
@@ -1146,7 +1160,7 @@ class UnsetPort(common.NeutronUnsetCommandWithExtraArgs):
|
|
|
1146
1160
|
_description = _("Unset port properties")
|
|
1147
1161
|
|
|
1148
1162
|
def get_parser(self, prog_name):
|
|
1149
|
-
parser = super(
|
|
1163
|
+
parser = super().get_parser(prog_name)
|
|
1150
1164
|
parser.add_argument(
|
|
1151
1165
|
'--fixed-ip',
|
|
1152
1166
|
metavar='subnet=<subnet>,ip-address=<ip-address>',
|