summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2020-06-26 01:13:35 +0000
committerGerrit Code Review <review@openstack.org>2020-06-26 01:13:35 +0000
commitabfca138d92413edde81a70b5fd87c91f2b16b2e (patch)
treea7512b22c28f6b6a3f2515e07c2a42b12d640a77
parent8b7a2c8d5931f15b69d1ef6baad994f4b9904579 (diff)
parent307d23bb58f0f44c9b9facdeaaa10227748ef50d (diff)
downloadpython-openstackclient-abfca138d92413edde81a70b5fd87c91f2b16b2e.tar.gz
Merge "port: add --host to list command"
-rw-r--r--openstackclient/network/v2/port.py6
-rw-r--r--openstackclient/tests/unit/network/v2/test_port.py16
2 files changed, 22 insertions, 0 deletions
diff --git a/openstackclient/network/v2/port.py b/openstackclient/network/v2/port.py
index 68154c3d..a21324ae 100644
--- a/openstackclient/network/v2/port.py
+++ b/openstackclient/network/v2/port.py
@@ -515,6 +515,10 @@ class ListPort(command.Lister):
"network:dhcp).")
)
parser.add_argument(
+ '--host',
+ metavar='<host-id>',
+ help=_("List only ports bound to this host ID"))
+ parser.add_argument(
'--network',
metavar='<network>',
help=_("List only ports connected to this network (name or ID)"))
@@ -602,6 +606,8 @@ class ListPort(command.Lister):
server = utils.find_resource(compute_client.servers,
parsed_args.server)
filters['device_id'] = server.id
+ if parsed_args.host:
+ filters['binding:host_id'] = parsed_args.host
if parsed_args.network:
network = network_client.find_network(parsed_args.network,
ignore_missing=False)
diff --git a/openstackclient/tests/unit/network/v2/test_port.py b/openstackclient/tests/unit/network/v2/test_port.py
index b1a18da6..87aea61f 100644
--- a/openstackclient/tests/unit/network/v2/test_port.py
+++ b/openstackclient/tests/unit/network/v2/test_port.py
@@ -1054,6 +1054,22 @@ class TestListPort(TestPort):
self.assertEqual(self.columns_long, columns)
self.assertListItemEqual(self.data_long, list(data))
+ def test_port_list_host(self):
+ arglist = [
+ '--host', 'foobar',
+ ]
+ verifylist = [
+ ('host', 'foobar'),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+ filters = {'binding:host_id': 'foobar'}
+
+ self.network.ports.assert_called_once_with(**filters)
+ self.assertEqual(self.columns, columns)
+ self.assertListItemEqual(self.data, list(data))
+
def test_port_list_project(self):
project = identity_fakes.FakeProject.create_one_project()
self.projects_mock.get.return_value = project