summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorBrian Haley <bhaley@redhat.com>2021-02-23 18:58:24 -0500
committerBrian Haley <bhaley@redhat.com>2021-02-23 18:58:24 -0500
commit16c72f8642c24e4e2d8af93698a84aced54be97a (patch)
tree849c4fdbdaafee3e358dd4ba8af2c83a6ceb5599 /openstackclient
parent01a53fa96fe2fbd67682850ee7ce9ab140c9211b (diff)
downloadpython-openstackclient-16c72f8642c24e4e2d8af93698a84aced54be97a.tar.gz
Add --name to port list
The neutron API supports filtering ports by name, but the CLI was missing support for it like it does for other networking resources. Change-Id: I4ff339e18656013218a26f045b205cb7a02dd2fb Story: #2008654
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/network/v2/port.py7
-rw-r--r--openstackclient/tests/unit/network/v2/test_port.py20
2 files changed, 27 insertions, 0 deletions
diff --git a/openstackclient/network/v2/port.py b/openstackclient/network/v2/port.py
index dfdb604d..6885e147 100644
--- a/openstackclient/network/v2/port.py
+++ b/openstackclient/network/v2/port.py
@@ -600,6 +600,11 @@ class ListPort(command.Lister):
metavar='<project>',
help=_("List ports according to their project (name or ID)")
)
+ parser.add_argument(
+ '--name',
+ metavar='<name>',
+ help=_("List ports according to their name")
+ )
identity_common.add_project_domain_option_to_parser(parser)
parser.add_argument(
'--fixed-ip',
@@ -667,6 +672,8 @@ class ListPort(command.Lister):
).id
filters['tenant_id'] = project_id
filters['project_id'] = project_id
+ if parsed_args.name:
+ filters['name'] = parsed_args.name
if parsed_args.fixed_ip:
filters['fixed_ips'] = _prepare_filter_fixed_ips(
self.app.client_manager, parsed_args)
diff --git a/openstackclient/tests/unit/network/v2/test_port.py b/openstackclient/tests/unit/network/v2/test_port.py
index c8bced71..8c5158d7 100644
--- a/openstackclient/tests/unit/network/v2/test_port.py
+++ b/openstackclient/tests/unit/network/v2/test_port.py
@@ -1250,6 +1250,26 @@ class TestListPort(TestPort):
self.assertEqual(self.columns, columns)
self.assertItemsEqual(self.data, list(data))
+ def test_port_list_name(self):
+ test_name = "fakename"
+ arglist = [
+ '--name', test_name,
+ ]
+ verifylist = [
+ ('name', test_name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+ filters = {
+ 'name': test_name,
+ 'fields': LIST_FIELDS_TO_RETRIEVE,
+ }
+
+ self.network.ports.assert_called_once_with(**filters)
+ self.assertEqual(self.columns, columns)
+ self.assertItemsEqual(self.data, list(data))
+
def test_list_with_tag_options(self):
arglist = [
'--tags', 'red,blue',