python-openstackclient 8.2.0__py3-none-any.whl → 8.3.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/object_store_v1.py +4 -1
- openstackclient/command.py +27 -0
- openstackclient/common/availability_zone.py +1 -1
- openstackclient/common/clientmanager.py +59 -21
- openstackclient/common/configuration.py +1 -1
- openstackclient/common/extension.py +1 -1
- openstackclient/common/limits.py +1 -1
- openstackclient/common/module.py +4 -2
- openstackclient/common/project_cleanup.py +10 -8
- openstackclient/common/quota.py +23 -6
- openstackclient/common/versions.py +1 -2
- openstackclient/compute/v2/agent.py +1 -1
- openstackclient/compute/v2/aggregate.py +6 -5
- openstackclient/compute/v2/console.py +5 -3
- openstackclient/compute/v2/console_connection.py +1 -1
- openstackclient/compute/v2/flavor.py +1 -1
- openstackclient/compute/v2/host.py +1 -1
- openstackclient/compute/v2/hypervisor.py +1 -1
- openstackclient/compute/v2/hypervisor_stats.py +1 -1
- openstackclient/compute/v2/keypair.py +1 -1
- openstackclient/compute/v2/server.py +76 -27
- openstackclient/compute/v2/server_backup.py +1 -1
- openstackclient/compute/v2/server_event.py +1 -1
- openstackclient/compute/v2/server_group.py +4 -2
- openstackclient/compute/v2/server_image.py +1 -1
- openstackclient/compute/v2/server_migration.py +1 -1
- openstackclient/compute/v2/server_volume.py +1 -1
- openstackclient/compute/v2/service.py +1 -1
- openstackclient/compute/v2/usage.py +6 -4
- openstackclient/identity/common.py +2 -1
- openstackclient/identity/v2_0/catalog.py +3 -2
- openstackclient/identity/v2_0/ec2creds.py +1 -1
- openstackclient/identity/v2_0/endpoint.py +1 -1
- openstackclient/identity/v2_0/project.py +17 -7
- openstackclient/identity/v2_0/role.py +1 -1
- openstackclient/identity/v2_0/role_assignment.py +3 -3
- openstackclient/identity/v2_0/service.py +1 -1
- openstackclient/identity/v2_0/token.py +1 -1
- openstackclient/identity/v2_0/user.py +2 -2
- openstackclient/identity/v3/access_rule.py +16 -4
- openstackclient/identity/v3/application_credential.py +30 -10
- openstackclient/identity/v3/catalog.py +3 -3
- openstackclient/identity/v3/consumer.py +1 -1
- openstackclient/identity/v3/credential.py +1 -1
- openstackclient/identity/v3/domain.py +10 -4
- openstackclient/identity/v3/ec2creds.py +1 -1
- openstackclient/identity/v3/endpoint.py +33 -12
- openstackclient/identity/v3/endpoint_group.py +1 -1
- openstackclient/identity/v3/federation_protocol.py +1 -1
- openstackclient/identity/v3/group.py +11 -5
- openstackclient/identity/v3/identity_provider.py +12 -10
- openstackclient/identity/v3/implied_role.py +1 -1
- openstackclient/identity/v3/limit.py +1 -1
- openstackclient/identity/v3/mapping.py +1 -1
- openstackclient/identity/v3/policy.py +1 -1
- openstackclient/identity/v3/project.py +10 -3
- openstackclient/identity/v3/region.py +1 -1
- openstackclient/identity/v3/registered_limit.py +16 -11
- openstackclient/identity/v3/role.py +20 -39
- openstackclient/identity/v3/role_assignment.py +12 -23
- openstackclient/identity/v3/service.py +1 -1
- openstackclient/identity/v3/service_provider.py +1 -1
- openstackclient/identity/v3/tag.py +3 -2
- openstackclient/identity/v3/token.py +3 -2
- openstackclient/identity/v3/trust.py +4 -2
- openstackclient/identity/v3/unscoped_saml.py +1 -1
- openstackclient/identity/v3/user.py +22 -13
- openstackclient/image/v1/image.py +19 -16
- openstackclient/image/v2/cache.py +1 -1
- openstackclient/image/v2/image.py +14 -11
- openstackclient/image/v2/info.py +1 -1
- openstackclient/image/v2/metadef_namespaces.py +1 -1
- openstackclient/image/v2/metadef_objects.py +1 -1
- openstackclient/image/v2/metadef_properties.py +3 -2
- openstackclient/image/v2/metadef_resource_type_association.py +1 -1
- openstackclient/image/v2/metadef_resource_types.py +1 -1
- openstackclient/image/v2/task.py +1 -1
- openstackclient/network/common.py +10 -9
- openstackclient/network/v2/address_group.py +4 -3
- openstackclient/network/v2/address_scope.py +8 -6
- openstackclient/network/v2/default_security_group_rule.py +9 -8
- openstackclient/network/v2/floating_ip.py +16 -9
- openstackclient/network/v2/floating_ip_port_forwarding.py +9 -6
- openstackclient/network/v2/ip_availability.py +7 -4
- openstackclient/network/v2/l3_conntrack_helper.py +11 -4
- openstackclient/network/v2/local_ip.py +13 -7
- openstackclient/network/v2/local_ip_association.py +7 -4
- openstackclient/network/v2/ndp_proxy.py +13 -6
- openstackclient/network/v2/network.py +33 -16
- openstackclient/network/v2/network_agent.py +5 -5
- openstackclient/network/v2/network_auto_allocated_topology.py +1 -1
- openstackclient/network/v2/network_flavor.py +1 -1
- openstackclient/network/v2/network_flavor_profile.py +1 -1
- openstackclient/network/v2/network_meter.py +1 -1
- openstackclient/network/v2/network_meter_rule.py +1 -1
- openstackclient/network/v2/network_qos_policy.py +7 -5
- openstackclient/network/v2/network_qos_rule.py +1 -1
- openstackclient/network/v2/network_qos_rule_type.py +1 -1
- openstackclient/network/v2/network_rbac.py +8 -5
- openstackclient/network/v2/network_segment.py +2 -2
- openstackclient/network/v2/network_segment_range.py +13 -6
- openstackclient/network/v2/network_service_provider.py +1 -1
- openstackclient/network/v2/network_trunk.py +65 -42
- openstackclient/network/v2/port.py +22 -20
- openstackclient/network/v2/router.py +19 -8
- openstackclient/network/v2/security_group.py +10 -6
- openstackclient/network/v2/security_group_rule.py +11 -5
- openstackclient/network/v2/subnet.py +17 -18
- openstackclient/network/v2/subnet_pool.py +11 -9
- openstackclient/network/v2/taas/__init__.py +0 -0
- openstackclient/network/v2/taas/tap_flow.py +245 -0
- openstackclient/network/v2/taas/tap_mirror.py +237 -0
- openstackclient/network/v2/taas/tap_service.py +211 -0
- openstackclient/object/v1/account.py +1 -1
- openstackclient/object/v1/container.py +1 -1
- openstackclient/object/v1/object.py +1 -1
- openstackclient/shell.py +18 -8
- openstackclient/tests/functional/identity/v3/test_catalog.py +42 -23
- openstackclient/tests/functional/identity/v3/test_role_assignment.py +174 -0
- openstackclient/tests/functional/image/v2/test_cache.py +54 -0
- openstackclient/tests/functional/image/v2/test_metadef_resource_type.py +55 -0
- openstackclient/tests/unit/common/test_command.py +1 -1
- openstackclient/tests/unit/common/test_extension.py +2 -3
- openstackclient/tests/unit/common/test_module.py +14 -7
- openstackclient/tests/unit/common/test_quota.py +20 -0
- openstackclient/tests/unit/compute/v2/test_aggregate.py +5 -3
- openstackclient/tests/unit/compute/v2/test_console.py +1 -4
- openstackclient/tests/unit/compute/v2/test_flavor.py +1 -3
- openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +1 -9
- openstackclient/tests/unit/compute/v2/test_server.py +364 -30
- openstackclient/tests/unit/compute/v2/test_server_backup.py +1 -3
- openstackclient/tests/unit/compute/v2/test_service.py +1 -3
- openstackclient/tests/unit/fakes.py +35 -134
- openstackclient/tests/unit/identity/test_common.py +100 -0
- openstackclient/tests/unit/identity/v2_0/test_project.py +4 -4
- openstackclient/tests/unit/identity/v3/fakes.py +10 -2
- openstackclient/tests/unit/identity/v3/test_application_credential.py +3 -3
- openstackclient/tests/unit/identity/v3/test_domain.py +1 -1
- openstackclient/tests/unit/identity/v3/test_endpoint.py +1 -1
- openstackclient/tests/unit/identity/v3/test_group.py +4 -2
- openstackclient/tests/unit/identity/v3/test_identity_provider.py +10 -10
- openstackclient/tests/unit/identity/v3/test_oauth.py +1 -1
- openstackclient/tests/unit/identity/v3/test_project.py +1 -1
- openstackclient/tests/unit/identity/v3/test_registered_limit.py +2 -2
- openstackclient/tests/unit/identity/v3/test_role.py +1 -82
- openstackclient/tests/unit/identity/v3/test_user.py +7 -51
- openstackclient/tests/unit/image/v2/test_image.py +111 -0
- openstackclient/tests/unit/network/test_common.py +9 -13
- openstackclient/tests/unit/network/v2/taas/__init__.py +0 -0
- openstackclient/tests/unit/network/v2/taas/test_osc_tap_flow.py +276 -0
- openstackclient/tests/unit/network/v2/taas/test_osc_tap_mirror.py +288 -0
- openstackclient/tests/unit/network/v2/taas/test_osc_tap_service.py +271 -0
- openstackclient/tests/unit/network/v2/test_address_group.py +19 -22
- openstackclient/tests/unit/network/v2/test_address_scope.py +10 -15
- openstackclient/tests/unit/network/v2/test_default_security_group_rule.py +38 -49
- openstackclient/tests/unit/network/v2/test_floating_ip_network.py +21 -27
- openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py +21 -18
- openstackclient/tests/unit/network/v2/test_ip_availability.py +6 -8
- openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +6 -15
- openstackclient/tests/unit/network/v2/test_local_ip.py +12 -23
- openstackclient/tests/unit/network/v2/test_local_ip_association.py +13 -18
- openstackclient/tests/unit/network/v2/test_ndp_proxy.py +11 -21
- openstackclient/tests/unit/network/v2/test_network.py +41 -37
- openstackclient/tests/unit/network/v2/test_network_agent.py +13 -20
- openstackclient/tests/unit/network/v2/test_network_auto_allocated_topology.py +5 -8
- openstackclient/tests/unit/network/v2/test_network_flavor.py +14 -26
- openstackclient/tests/unit/network/v2/test_network_flavor_profile.py +14 -17
- openstackclient/tests/unit/network/v2/test_network_meter.py +7 -17
- openstackclient/tests/unit/network/v2/test_network_meter_rule.py +10 -20
- openstackclient/tests/unit/network/v2/test_network_qos_policy.py +7 -13
- openstackclient/tests/unit/network/v2/test_network_qos_rule.py +44 -54
- openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +2 -7
- openstackclient/tests/unit/network/v2/test_network_rbac.py +21 -36
- openstackclient/tests/unit/network/v2/test_network_segment.py +13 -29
- openstackclient/tests/unit/network/v2/test_network_segment_range.py +20 -19
- openstackclient/tests/unit/network/v2/test_network_service_provider.py +1 -4
- openstackclient/tests/unit/network/v2/test_network_trunk.py +52 -47
- openstackclient/tests/unit/network/v2/test_port.py +75 -86
- openstackclient/tests/unit/network/v2/test_router.py +104 -126
- openstackclient/tests/unit/network/v2/test_security_group_network.py +19 -26
- openstackclient/tests/unit/network/v2/test_security_group_rule_network.py +17 -18
- openstackclient/tests/unit/network/v2/test_subnet.py +35 -46
- openstackclient/tests/unit/network/v2/test_subnet_pool.py +21 -33
- openstackclient/tests/unit/volume/test_find_resource.py +4 -13
- openstackclient/tests/unit/volume/v2/test_volume_backup.py +3 -1
- openstackclient/tests/unit/volume/v3/test_volume.py +4 -0
- openstackclient/tests/unit/volume/v3/test_volume_backup.py +9 -0
- openstackclient/volume/client.py +7 -17
- openstackclient/volume/v2/backup_record.py +1 -1
- openstackclient/volume/v2/consistency_group.py +1 -1
- openstackclient/volume/v2/consistency_group_snapshot.py +1 -1
- openstackclient/volume/v2/qos_specs.py +1 -1
- openstackclient/volume/v2/service.py +1 -1
- openstackclient/volume/v2/volume.py +2 -2
- openstackclient/volume/v2/volume_backend.py +1 -1
- openstackclient/volume/v2/volume_backup.py +5 -3
- openstackclient/volume/v2/volume_host.py +1 -2
- openstackclient/volume/v2/volume_snapshot.py +2 -2
- openstackclient/volume/v2/volume_transfer_request.py +1 -1
- openstackclient/volume/v2/volume_type.py +11 -6
- openstackclient/volume/v3/block_storage_cleanup.py +1 -1
- openstackclient/volume/v3/block_storage_cluster.py +1 -1
- openstackclient/volume/v3/block_storage_log_level.py +1 -1
- openstackclient/volume/v3/block_storage_manage.py +1 -1
- openstackclient/volume/v3/block_storage_resource_filter.py +1 -1
- openstackclient/volume/v3/service.py +1 -1
- openstackclient/volume/v3/volume.py +2 -2
- openstackclient/volume/v3/volume_attachment.py +6 -5
- openstackclient/volume/v3/volume_backup.py +18 -3
- openstackclient/volume/v3/volume_group.py +1 -1
- openstackclient/volume/v3/volume_group_snapshot.py +1 -1
- openstackclient/volume/v3/volume_group_type.py +1 -1
- openstackclient/volume/v3/volume_message.py +1 -1
- openstackclient/volume/v3/volume_snapshot.py +2 -2
- openstackclient/volume/v3/volume_transfer_request.py +1 -1
- openstackclient/volume/v3/volume_type.py +15 -9
- {python_openstackclient-8.2.0.dist-info → python_openstackclient-8.3.0.dist-info}/METADATA +15 -13
- {python_openstackclient-8.2.0.dist-info → python_openstackclient-8.3.0.dist-info}/RECORD +224 -213
- {python_openstackclient-8.2.0.dist-info → python_openstackclient-8.3.0.dist-info}/WHEEL +1 -1
- {python_openstackclient-8.2.0.dist-info → python_openstackclient-8.3.0.dist-info}/entry_points.txt +15 -0
- {python_openstackclient-8.2.0.dist-info → python_openstackclient-8.3.0.dist-info/licenses}/AUTHORS +10 -0
- python_openstackclient-8.3.0.dist-info/pbr.json +1 -0
- openstackclient/tests/unit/common/test_logs.py +0 -221
- python_openstackclient-8.2.0.dist-info/pbr.json +0 -1
- {python_openstackclient-8.2.0.dist-info → python_openstackclient-8.3.0.dist-info/licenses}/LICENSE +0 -0
- {python_openstackclient-8.2.0.dist-info → python_openstackclient-8.3.0.dist-info}/top_level.txt +0 -0
|
@@ -30,10 +30,10 @@ from openstack import utils as sdk_utils
|
|
|
30
30
|
from osc_lib.api import utils as api_utils
|
|
31
31
|
from osc_lib.cli import format_columns
|
|
32
32
|
from osc_lib.cli import parseractions
|
|
33
|
-
from osc_lib.command import command
|
|
34
33
|
from osc_lib import exceptions
|
|
35
34
|
from osc_lib import utils
|
|
36
35
|
|
|
36
|
+
from openstackclient import command
|
|
37
37
|
from openstackclient.common import pagination
|
|
38
38
|
from openstackclient.common import progressbar
|
|
39
39
|
from openstackclient.i18n import _
|
|
@@ -551,7 +551,7 @@ class CreateImage(command.ShowOne):
|
|
|
551
551
|
sign_cert_id = parsed_args.sign_cert_id
|
|
552
552
|
signer = image_signer.ImageSigner()
|
|
553
553
|
try:
|
|
554
|
-
pw = utils.get_password(
|
|
554
|
+
pw: str | None = utils.get_password(
|
|
555
555
|
self.app.stdin,
|
|
556
556
|
prompt=(
|
|
557
557
|
"Please enter private key password, leave "
|
|
@@ -562,12 +562,11 @@ class CreateImage(command.ShowOne):
|
|
|
562
562
|
|
|
563
563
|
if not pw or len(pw) < 1:
|
|
564
564
|
pw = None
|
|
565
|
-
else:
|
|
566
|
-
# load_private_key() requires the password to be
|
|
567
|
-
# passed as bytes
|
|
568
|
-
pw = pw.encode()
|
|
569
565
|
|
|
570
|
-
signer.load_private_key(
|
|
566
|
+
signer.load_private_key(
|
|
567
|
+
sign_key_path,
|
|
568
|
+
password=pw.encode() if pw else None,
|
|
569
|
+
)
|
|
571
570
|
except Exception:
|
|
572
571
|
msg = _(
|
|
573
572
|
"Error during sign operation: private key "
|
|
@@ -933,18 +932,19 @@ class ListImage(command.Lister):
|
|
|
933
932
|
if 'limit' in kwargs:
|
|
934
933
|
# Disable automatic pagination in SDK
|
|
935
934
|
kwargs['paginated'] = False
|
|
936
|
-
|
|
935
|
+
|
|
936
|
+
images = list(image_client.images(**kwargs))
|
|
937
937
|
|
|
938
938
|
if parsed_args.property:
|
|
939
939
|
for attr, value in parsed_args.property.items():
|
|
940
940
|
api_utils.simple_filter(
|
|
941
|
-
|
|
941
|
+
images,
|
|
942
942
|
attr=attr,
|
|
943
943
|
value=value,
|
|
944
944
|
property_field='properties',
|
|
945
945
|
)
|
|
946
946
|
|
|
947
|
-
data = utils.sort_items(
|
|
947
|
+
data = utils.sort_items(images, parsed_args.sort, str)
|
|
948
948
|
|
|
949
949
|
return (
|
|
950
950
|
column_headers,
|
|
@@ -1393,7 +1393,10 @@ class SetImage(command.Command):
|
|
|
1393
1393
|
if parsed_args.visibility is not None:
|
|
1394
1394
|
kwargs['visibility'] = parsed_args.visibility
|
|
1395
1395
|
|
|
1396
|
-
if
|
|
1396
|
+
# Only set owner_id if --project is used WITHOUT membership flags
|
|
1397
|
+
# When --project is used with --accept/--reject/--pending, it should
|
|
1398
|
+
# only identify which member's status to update, not change ownership
|
|
1399
|
+
if parsed_args.project and not parsed_args.membership:
|
|
1397
1400
|
# We already did the project lookup above
|
|
1398
1401
|
kwargs['owner_id'] = project_id
|
|
1399
1402
|
|
openstackclient/image/v2/info.py
CHANGED
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
import logging
|
|
19
19
|
|
|
20
20
|
from osc_lib.cli import format_columns
|
|
21
|
-
from osc_lib.command import command
|
|
22
21
|
from osc_lib import exceptions
|
|
23
22
|
from osc_lib import utils
|
|
24
23
|
|
|
24
|
+
from openstackclient import command
|
|
25
25
|
from openstackclient.i18n import _
|
|
26
26
|
|
|
27
27
|
_formatters = {
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
import json
|
|
16
16
|
import logging
|
|
17
17
|
|
|
18
|
-
from osc_lib.command import command
|
|
19
18
|
from osc_lib import exceptions
|
|
20
19
|
from osc_lib import utils
|
|
21
20
|
|
|
21
|
+
from openstackclient import command
|
|
22
22
|
from openstackclient.i18n import _
|
|
23
23
|
|
|
24
24
|
|
|
@@ -127,7 +127,8 @@ class DeleteMetadefProperty(command.Command):
|
|
|
127
127
|
nargs="*",
|
|
128
128
|
help=_(
|
|
129
129
|
"Metadef properties to delete (name) "
|
|
130
|
-
"(omit this argument to delete all properties
|
|
130
|
+
"(omit this argument to delete all properties "
|
|
131
|
+
"in the namespace)"
|
|
131
132
|
),
|
|
132
133
|
)
|
|
133
134
|
return parser
|
openstackclient/image/v2/task.py
CHANGED
|
@@ -12,17 +12,16 @@
|
|
|
12
12
|
#
|
|
13
13
|
|
|
14
14
|
import abc
|
|
15
|
-
import argparse
|
|
16
15
|
import contextlib
|
|
17
16
|
import logging
|
|
18
17
|
import typing as ty
|
|
19
18
|
|
|
20
|
-
import
|
|
19
|
+
from cliff import _argparse
|
|
21
20
|
import openstack.exceptions
|
|
22
21
|
from osc_lib.cli import parseractions
|
|
23
|
-
from osc_lib.command import command
|
|
24
22
|
from osc_lib import exceptions
|
|
25
23
|
|
|
24
|
+
from openstackclient import command
|
|
26
25
|
from openstackclient.i18n import _
|
|
27
26
|
from openstackclient.network import utils
|
|
28
27
|
|
|
@@ -68,8 +67,6 @@ class NetDetectionMixin(metaclass=abc.ABCMeta):
|
|
|
68
67
|
present the options for both network types, often qualified accordingly.
|
|
69
68
|
"""
|
|
70
69
|
|
|
71
|
-
app: cliff.app.App
|
|
72
|
-
|
|
73
70
|
@property
|
|
74
71
|
def _network_type(self):
|
|
75
72
|
"""Discover whether the running cloud is using neutron or nova-network.
|
|
@@ -84,7 +81,7 @@ class NetDetectionMixin(metaclass=abc.ABCMeta):
|
|
|
84
81
|
# Have we set it up yet for this command?
|
|
85
82
|
if not hasattr(self, '_net_type'):
|
|
86
83
|
try:
|
|
87
|
-
if self.app.client_manager.is_network_endpoint_enabled():
|
|
84
|
+
if self.app.client_manager.is_network_endpoint_enabled(): # type: ignore
|
|
88
85
|
net_type = _NET_TYPE_NEUTRON
|
|
89
86
|
else:
|
|
90
87
|
net_type = _NET_TYPE_COMPUTE
|
|
@@ -136,7 +133,7 @@ class NetDetectionMixin(metaclass=abc.ABCMeta):
|
|
|
136
133
|
)
|
|
137
134
|
)
|
|
138
135
|
|
|
139
|
-
def get_parser(self, prog_name: str) ->
|
|
136
|
+
def get_parser(self, prog_name: str) -> _argparse.ArgumentParser:
|
|
140
137
|
LOG.debug('get_parser(%s)', prog_name)
|
|
141
138
|
parser = super().get_parser(prog_name) # type: ignore
|
|
142
139
|
parser = self.update_parser_common(parser)
|
|
@@ -163,11 +160,13 @@ class NetDetectionMixin(metaclass=abc.ABCMeta):
|
|
|
163
160
|
def take_action(self, parsed_args):
|
|
164
161
|
if self.is_neutron:
|
|
165
162
|
return self.take_action_network(
|
|
166
|
-
self.app.client_manager.network,
|
|
163
|
+
self.app.client_manager.network, # type: ignore
|
|
164
|
+
parsed_args,
|
|
167
165
|
)
|
|
168
166
|
elif self.is_nova_network:
|
|
169
167
|
return self.take_action_compute(
|
|
170
|
-
self.app.client_manager.compute,
|
|
168
|
+
self.app.client_manager.compute, # type: ignore
|
|
169
|
+
parsed_args,
|
|
171
170
|
)
|
|
172
171
|
|
|
173
172
|
def take_action_network(self, client, parsed_args):
|
|
@@ -203,6 +202,8 @@ class NetworkAndComputeDelete(NetworkAndComputeCommand, metaclass=abc.ABCMeta):
|
|
|
203
202
|
following the rules in doc/source/command-errors.rst.
|
|
204
203
|
"""
|
|
205
204
|
|
|
205
|
+
resource: str
|
|
206
|
+
|
|
206
207
|
def take_action(self, parsed_args):
|
|
207
208
|
ret = 0
|
|
208
209
|
resources = getattr(parsed_args, self.resource, [])
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
import logging
|
|
17
17
|
|
|
18
18
|
import netaddr
|
|
19
|
-
from osc_lib.command import command
|
|
20
19
|
from osc_lib import exceptions
|
|
21
20
|
from osc_lib import utils
|
|
22
21
|
|
|
22
|
+
from openstackclient import command
|
|
23
23
|
from openstackclient.i18n import _
|
|
24
24
|
from openstackclient.identity import common as identity_common
|
|
25
25
|
from openstackclient.network import common
|
|
@@ -151,13 +151,14 @@ class ListAddressGroup(command.Lister):
|
|
|
151
151
|
parser.add_argument(
|
|
152
152
|
'--name',
|
|
153
153
|
metavar='<name>',
|
|
154
|
-
help=_("List only address groups
|
|
154
|
+
help=_("List only address groups with the specified name"),
|
|
155
155
|
)
|
|
156
156
|
parser.add_argument(
|
|
157
157
|
'--project',
|
|
158
158
|
metavar="<project>",
|
|
159
159
|
help=_(
|
|
160
|
-
"List address groups
|
|
160
|
+
"List only address groups with the specified project "
|
|
161
|
+
"(name or ID)"
|
|
161
162
|
),
|
|
162
163
|
)
|
|
163
164
|
identity_common.add_project_domain_option_to_parser(parser)
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
|
|
16
16
|
import logging
|
|
17
17
|
|
|
18
|
-
from osc_lib.command import command
|
|
19
18
|
from osc_lib import exceptions
|
|
20
19
|
from osc_lib import utils
|
|
21
20
|
|
|
21
|
+
from openstackclient import command
|
|
22
22
|
from openstackclient.i18n import _
|
|
23
23
|
from openstackclient.identity import common as identity_common
|
|
24
24
|
from openstackclient.network import common
|
|
@@ -160,7 +160,7 @@ class ListAddressScope(command.Lister):
|
|
|
160
160
|
parser.add_argument(
|
|
161
161
|
'--name',
|
|
162
162
|
metavar='<name>',
|
|
163
|
-
help=_("List only address scopes
|
|
163
|
+
help=_("List only address scopes with the specified name"),
|
|
164
164
|
)
|
|
165
165
|
parser.add_argument(
|
|
166
166
|
'--ip-version',
|
|
@@ -169,14 +169,16 @@ class ListAddressScope(command.Lister):
|
|
|
169
169
|
metavar='<ip-version>',
|
|
170
170
|
dest='ip_version',
|
|
171
171
|
help=_(
|
|
172
|
-
"List address scopes
|
|
172
|
+
"List only address scopes with the specified IP version "
|
|
173
|
+
"networks (4 or 6)"
|
|
173
174
|
),
|
|
174
175
|
)
|
|
175
176
|
parser.add_argument(
|
|
176
177
|
'--project',
|
|
177
178
|
metavar="<project>",
|
|
178
179
|
help=_(
|
|
179
|
-
"List address scopes
|
|
180
|
+
"List only address scopes with the specified project "
|
|
181
|
+
"(name or ID)"
|
|
180
182
|
),
|
|
181
183
|
)
|
|
182
184
|
identity_common.add_project_domain_option_to_parser(parser)
|
|
@@ -185,12 +187,12 @@ class ListAddressScope(command.Lister):
|
|
|
185
187
|
shared_group.add_argument(
|
|
186
188
|
'--share',
|
|
187
189
|
action='store_true',
|
|
188
|
-
help=_("List address scopes shared between projects"),
|
|
190
|
+
help=_("List only address scopes shared between projects"),
|
|
189
191
|
)
|
|
190
192
|
shared_group.add_argument(
|
|
191
193
|
'--no-share',
|
|
192
194
|
action='store_true',
|
|
193
|
-
help=_("List address scopes not shared between projects"),
|
|
195
|
+
help=_("List only address scopes not shared between projects"),
|
|
194
196
|
)
|
|
195
197
|
return parser
|
|
196
198
|
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
import logging
|
|
17
17
|
|
|
18
18
|
from osc_lib.cli import parseractions
|
|
19
|
-
from osc_lib.command import command
|
|
20
19
|
from osc_lib import exceptions
|
|
21
20
|
from osc_lib import utils
|
|
22
21
|
|
|
22
|
+
from openstackclient import command
|
|
23
23
|
from openstackclient.i18n import _
|
|
24
24
|
from openstackclient.network import common
|
|
25
25
|
from openstackclient.network import utils as network_utils
|
|
@@ -150,7 +150,7 @@ class CreateDefaultSecurityGroupRule(
|
|
|
150
150
|
return parser
|
|
151
151
|
|
|
152
152
|
def take_action(self, parsed_args):
|
|
153
|
-
client = self.app.client_manager.
|
|
153
|
+
client = self.app.client_manager.network
|
|
154
154
|
# Build the create attributes.
|
|
155
155
|
attrs = {}
|
|
156
156
|
attrs['protocol'] = network_utils.get_protocol(parsed_args)
|
|
@@ -248,7 +248,7 @@ class DeleteDefaultSecurityGroupRule(command.Command):
|
|
|
248
248
|
|
|
249
249
|
def take_action(self, parsed_args):
|
|
250
250
|
result = 0
|
|
251
|
-
client = self.app.client_manager.
|
|
251
|
+
client = self.app.client_manager.network
|
|
252
252
|
for r in parsed_args.rule:
|
|
253
253
|
try:
|
|
254
254
|
obj = client.find_default_security_group_rule(
|
|
@@ -300,7 +300,8 @@ class ListDefaultSecurityGroupRule(command.Lister):
|
|
|
300
300
|
metavar='<protocol>',
|
|
301
301
|
type=network_utils.convert_to_lowercase,
|
|
302
302
|
help=_(
|
|
303
|
-
"List rules
|
|
303
|
+
"List only default rules with the specified IP protocol "
|
|
304
|
+
"(ah, dhcp, egp, esp, gre, "
|
|
304
305
|
"icmp, igmp, ipv6-encap, ipv6-frag, ipv6-icmp, "
|
|
305
306
|
"ipv6-nonxt, ipv6-opts, ipv6-route, ospf, pgm, rsvp, "
|
|
306
307
|
"sctp, tcp, udp, udplite, vrrp and integer "
|
|
@@ -319,7 +320,7 @@ class ListDefaultSecurityGroupRule(command.Lister):
|
|
|
319
320
|
'--ingress',
|
|
320
321
|
action='store_true',
|
|
321
322
|
help=_(
|
|
322
|
-
"List default rules which will be applied to incoming "
|
|
323
|
+
"List only default rules which will be applied to incoming "
|
|
323
324
|
"network traffic"
|
|
324
325
|
),
|
|
325
326
|
)
|
|
@@ -327,14 +328,14 @@ class ListDefaultSecurityGroupRule(command.Lister):
|
|
|
327
328
|
'--egress',
|
|
328
329
|
action='store_true',
|
|
329
330
|
help=_(
|
|
330
|
-
"List default rules which will be applied to outgoing "
|
|
331
|
+
"List only default rules which will be applied to outgoing "
|
|
331
332
|
"network traffic"
|
|
332
333
|
),
|
|
333
334
|
)
|
|
334
335
|
return parser
|
|
335
336
|
|
|
336
337
|
def take_action(self, parsed_args):
|
|
337
|
-
client = self.app.client_manager.
|
|
338
|
+
client = self.app.client_manager.network
|
|
338
339
|
column_headers = (
|
|
339
340
|
'ID',
|
|
340
341
|
'IP Protocol',
|
|
@@ -403,7 +404,7 @@ class ShowDefaultSecurityGroupRule(command.ShowOne):
|
|
|
403
404
|
return parser
|
|
404
405
|
|
|
405
406
|
def take_action(self, parsed_args):
|
|
406
|
-
client = self.app.client_manager.
|
|
407
|
+
client = self.app.client_manager.network
|
|
407
408
|
obj = client.find_default_security_group_rule(
|
|
408
409
|
parsed_args.rule, ignore_missing=False
|
|
409
410
|
)
|
|
@@ -247,7 +247,7 @@ class ListFloatingIP(common.NetworkAndComputeLister):
|
|
|
247
247
|
action='append',
|
|
248
248
|
help=self.enhance_help_neutron(
|
|
249
249
|
_(
|
|
250
|
-
"List floating IP(s)
|
|
250
|
+
"List only floating IP(s) with the specified network "
|
|
251
251
|
"(name or ID) "
|
|
252
252
|
"(repeat option to fiter on multiple networks)"
|
|
253
253
|
)
|
|
@@ -260,7 +260,8 @@ class ListFloatingIP(common.NetworkAndComputeLister):
|
|
|
260
260
|
action='append',
|
|
261
261
|
help=self.enhance_help_neutron(
|
|
262
262
|
_(
|
|
263
|
-
"List floating IP(s)
|
|
263
|
+
"List only floating IP(s) with the specified port "
|
|
264
|
+
"(name or ID) "
|
|
264
265
|
"(repeat option to fiter on multiple ports)"
|
|
265
266
|
)
|
|
266
267
|
),
|
|
@@ -269,14 +270,20 @@ class ListFloatingIP(common.NetworkAndComputeLister):
|
|
|
269
270
|
'--fixed-ip-address',
|
|
270
271
|
metavar='<ip-address>',
|
|
271
272
|
help=self.enhance_help_neutron(
|
|
272
|
-
_(
|
|
273
|
+
_(
|
|
274
|
+
"List only floating IP(s) with the specified fixed IP "
|
|
275
|
+
"address"
|
|
276
|
+
)
|
|
273
277
|
),
|
|
274
278
|
)
|
|
275
279
|
parser.add_argument(
|
|
276
280
|
'--floating-ip-address',
|
|
277
281
|
metavar='<ip-address>',
|
|
278
282
|
help=self.enhance_help_neutron(
|
|
279
|
-
_(
|
|
283
|
+
_(
|
|
284
|
+
"List only floating IP(s) with the specified floating IP "
|
|
285
|
+
"address"
|
|
286
|
+
)
|
|
280
287
|
),
|
|
281
288
|
)
|
|
282
289
|
parser.add_argument(
|
|
@@ -285,8 +292,8 @@ class ListFloatingIP(common.NetworkAndComputeLister):
|
|
|
285
292
|
choices=['ACTIVE', 'DOWN'],
|
|
286
293
|
help=self.enhance_help_neutron(
|
|
287
294
|
_(
|
|
288
|
-
"List floating IP(s)
|
|
289
|
-
"'DOWN')"
|
|
295
|
+
"List only floating IP(s) with the specified status "
|
|
296
|
+
"('ACTIVE', 'DOWN')"
|
|
290
297
|
)
|
|
291
298
|
),
|
|
292
299
|
)
|
|
@@ -295,8 +302,8 @@ class ListFloatingIP(common.NetworkAndComputeLister):
|
|
|
295
302
|
metavar='<project>',
|
|
296
303
|
help=self.enhance_help_neutron(
|
|
297
304
|
_(
|
|
298
|
-
"List floating IP(s)
|
|
299
|
-
"(name or ID)
|
|
305
|
+
"List only floating IP(s) with the specified project "
|
|
306
|
+
"(name or ID)"
|
|
300
307
|
)
|
|
301
308
|
),
|
|
302
309
|
)
|
|
@@ -308,7 +315,7 @@ class ListFloatingIP(common.NetworkAndComputeLister):
|
|
|
308
315
|
action='append',
|
|
309
316
|
help=self.enhance_help_neutron(
|
|
310
317
|
_(
|
|
311
|
-
"List floating IP(s)
|
|
318
|
+
"List only floating IP(s) with the specified router "
|
|
312
319
|
"(name or ID) "
|
|
313
320
|
"(repeat option to fiter on multiple routers)"
|
|
314
321
|
)
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
import logging
|
|
17
17
|
import typing as ty
|
|
18
18
|
|
|
19
|
-
from osc_lib.command import command
|
|
20
19
|
from osc_lib import exceptions
|
|
21
20
|
from osc_lib import utils
|
|
22
21
|
|
|
22
|
+
from openstackclient import command
|
|
23
23
|
from openstackclient.i18n import _
|
|
24
24
|
from openstackclient.network import common
|
|
25
25
|
|
|
@@ -265,8 +265,8 @@ class ListFloatingIPPortForwarding(command.Lister):
|
|
|
265
265
|
'--port',
|
|
266
266
|
metavar='<port>',
|
|
267
267
|
help=_(
|
|
268
|
-
"
|
|
269
|
-
"
|
|
268
|
+
"List only floating IP port forwardings with the "
|
|
269
|
+
"specified internal network port (name or ID)"
|
|
270
270
|
),
|
|
271
271
|
)
|
|
272
272
|
parser.add_argument(
|
|
@@ -274,14 +274,17 @@ class ListFloatingIPPortForwarding(command.Lister):
|
|
|
274
274
|
metavar='<port-number>',
|
|
275
275
|
dest='external_protocol_port',
|
|
276
276
|
help=_(
|
|
277
|
-
"
|
|
278
|
-
"protocol port number
|
|
277
|
+
"List only floating IP port forwardings with the "
|
|
278
|
+
"specified external protocol port number"
|
|
279
279
|
),
|
|
280
280
|
)
|
|
281
281
|
parser.add_argument(
|
|
282
282
|
'--protocol',
|
|
283
283
|
metavar='<protocol>',
|
|
284
|
-
help=_(
|
|
284
|
+
help=_(
|
|
285
|
+
"List only floating IP port forwardings with the "
|
|
286
|
+
"specified protocol number"
|
|
287
|
+
),
|
|
285
288
|
)
|
|
286
289
|
|
|
287
290
|
return parser
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
"""IP Availability Info implementations"""
|
|
15
15
|
|
|
16
16
|
from osc_lib.cli import format_columns
|
|
17
|
-
from osc_lib.command import command
|
|
18
17
|
from osc_lib import utils
|
|
19
18
|
|
|
19
|
+
from openstackclient import command
|
|
20
20
|
from openstackclient.i18n import _
|
|
21
21
|
from openstackclient.identity import common as identity_common
|
|
22
22
|
|
|
@@ -47,14 +47,17 @@ class ListIPAvailability(command.Lister):
|
|
|
47
47
|
metavar='<ip-version>',
|
|
48
48
|
dest='ip_version',
|
|
49
49
|
help=_(
|
|
50
|
-
"List IP availability
|
|
51
|
-
"networks (default is 4)"
|
|
50
|
+
"List only IP availability with the specified IP version "
|
|
51
|
+
"networks (4 or 6, default is 4)"
|
|
52
52
|
),
|
|
53
53
|
)
|
|
54
54
|
parser.add_argument(
|
|
55
55
|
'--project',
|
|
56
56
|
metavar='<project>',
|
|
57
|
-
help=_(
|
|
57
|
+
help=_(
|
|
58
|
+
"List only IP availability with the specified project "
|
|
59
|
+
"(name or ID)"
|
|
60
|
+
),
|
|
58
61
|
)
|
|
59
62
|
identity_common.add_project_domain_option_to_parser(parser)
|
|
60
63
|
return parser
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
|
|
16
16
|
import logging
|
|
17
17
|
|
|
18
|
-
from osc_lib.command import command
|
|
19
18
|
from osc_lib import exceptions
|
|
20
19
|
from osc_lib import utils
|
|
21
20
|
|
|
21
|
+
from openstackclient import command
|
|
22
22
|
from openstackclient.i18n import _
|
|
23
23
|
|
|
24
24
|
LOG = logging.getLogger(__name__)
|
|
@@ -150,19 +150,26 @@ class ListConntrackHelper(command.Lister):
|
|
|
150
150
|
parser.add_argument(
|
|
151
151
|
'--helper',
|
|
152
152
|
metavar='<helper>',
|
|
153
|
-
help=_(
|
|
153
|
+
help=_(
|
|
154
|
+
'List only helpers using the specified netfilter conntrack '
|
|
155
|
+
'helper module'
|
|
156
|
+
),
|
|
154
157
|
)
|
|
155
158
|
parser.add_argument(
|
|
156
159
|
'--protocol',
|
|
157
160
|
metavar='<protocol>',
|
|
158
161
|
help=_(
|
|
159
|
-
'
|
|
162
|
+
'List only helpers with the specified network protocol for '
|
|
163
|
+
'the netfilter conntrack target rule'
|
|
160
164
|
),
|
|
161
165
|
)
|
|
162
166
|
parser.add_argument(
|
|
163
167
|
'--port',
|
|
164
168
|
metavar='<port>',
|
|
165
|
-
help=_(
|
|
169
|
+
help=_(
|
|
170
|
+
'List only helpers with the specified network port for '
|
|
171
|
+
'the netfilter conntrack target rule (name or ID)'
|
|
172
|
+
),
|
|
166
173
|
)
|
|
167
174
|
|
|
168
175
|
return parser
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
|
|
18
18
|
import logging
|
|
19
19
|
|
|
20
|
-
from osc_lib.command import command
|
|
21
20
|
from osc_lib import exceptions
|
|
22
21
|
from osc_lib import utils
|
|
23
22
|
|
|
23
|
+
from openstackclient import command
|
|
24
24
|
from openstackclient.i18n import _
|
|
25
25
|
from openstackclient.identity import common as identity_common
|
|
26
26
|
|
|
@@ -198,32 +198,38 @@ class ListLocalIP(command.Lister):
|
|
|
198
198
|
parser.add_argument(
|
|
199
199
|
'--name',
|
|
200
200
|
metavar='<name>',
|
|
201
|
-
help=_("List only
|
|
201
|
+
help=_("List only local IP(s) with the specified name"),
|
|
202
202
|
)
|
|
203
203
|
parser.add_argument(
|
|
204
204
|
'--project',
|
|
205
205
|
metavar="<project>",
|
|
206
|
-
help=_(
|
|
206
|
+
help=_(
|
|
207
|
+
"List only local IP(s) with the specified project (name or ID)"
|
|
208
|
+
),
|
|
207
209
|
)
|
|
208
210
|
parser.add_argument(
|
|
209
211
|
'--network',
|
|
210
212
|
metavar='<network>',
|
|
211
|
-
help=_(
|
|
213
|
+
help=_(
|
|
214
|
+
"List only local IP(s) with the specified network (name or ID)"
|
|
215
|
+
),
|
|
212
216
|
)
|
|
213
217
|
parser.add_argument(
|
|
214
218
|
'--local-port',
|
|
215
219
|
metavar='<local-port>',
|
|
216
|
-
help=_(
|
|
220
|
+
help=_(
|
|
221
|
+
"List only local IP(s) with the specified port (name or ID)"
|
|
222
|
+
),
|
|
217
223
|
)
|
|
218
224
|
parser.add_argument(
|
|
219
225
|
'--local-ip-address',
|
|
220
226
|
metavar='<local-ip-address>',
|
|
221
|
-
help=_("List
|
|
227
|
+
help=_("List only local IP(s) with the specified IP address"),
|
|
222
228
|
)
|
|
223
229
|
parser.add_argument(
|
|
224
230
|
'--ip-mode',
|
|
225
231
|
metavar='<ip_mode>',
|
|
226
|
-
help=_("List
|
|
232
|
+
help=_("List only local IP(s) with the specified IP mode"),
|
|
227
233
|
)
|
|
228
234
|
|
|
229
235
|
identity_common.add_project_domain_option_to_parser(parser)
|