Skip to content

Commit abfca13

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "port: add --host to list command"
2 parents 8b7a2c8 + 307d23b commit abfca13

2 files changed

Lines changed: 22 additions & 0 deletions

File tree

openstackclient/network/v2/port.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,10 @@ def get_parser(self, prog_name):
514514
"This is the entity that uses the port (for example, "
515515
"network:dhcp).")
516516
)
517+
parser.add_argument(
518+
'--host',
519+
metavar='<host-id>',
520+
help=_("List only ports bound to this host ID"))
517521
parser.add_argument(
518522
'--network',
519523
metavar='<network>',
@@ -602,6 +606,8 @@ def take_action(self, parsed_args):
602606
server = utils.find_resource(compute_client.servers,
603607
parsed_args.server)
604608
filters['device_id'] = server.id
609+
if parsed_args.host:
610+
filters['binding:host_id'] = parsed_args.host
605611
if parsed_args.network:
606612
network = network_client.find_network(parsed_args.network,
607613
ignore_missing=False)

openstackclient/tests/unit/network/v2/test_port.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1054,6 +1054,22 @@ def test_list_port_with_long(self):
10541054
self.assertEqual(self.columns_long, columns)
10551055
self.assertListItemEqual(self.data_long, list(data))
10561056

1057+
def test_port_list_host(self):
1058+
arglist = [
1059+
'--host', 'foobar',
1060+
]
1061+
verifylist = [
1062+
('host', 'foobar'),
1063+
]
1064+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
1065+
1066+
columns, data = self.cmd.take_action(parsed_args)
1067+
filters = {'binding:host_id': 'foobar'}
1068+
1069+
self.network.ports.assert_called_once_with(**filters)
1070+
self.assertEqual(self.columns, columns)
1071+
self.assertListItemEqual(self.data, list(data))
1072+
10571073
def test_port_list_project(self):
10581074
project = identity_fakes.FakeProject.create_one_project()
10591075
self.projects_mock.get.return_value = project

0 commit comments

Comments
 (0)