diff options
| author | Reedip <reedip.banerjee@nectechnologies.in> | 2016-09-17 13:09:42 +0530 |
|---|---|---|
| committer | Reedip <reedip.banerjee@nectechnologies.in> | 2016-09-19 09:25:10 +0000 |
| commit | 554607eb3dab879da8e172eacb72930e54f0acf4 (patch) | |
| tree | 2e21a5e23dfc84fc5318b7de7ad8a12e1aeb8e6a /openstackclient | |
| parent | 7e990ba1e2ae0ecb804287212797ebad84d7b56b (diff) | |
| download | python-openstackclient-554607eb3dab879da8e172eacb72930e54f0acf4.tar.gz | |
Provide support to list ports by network
The new --network option provides a list of ports
connected with the current network.
Change-Id: I6a45184887b3e65f792391cb7e91f4ad85f29e03
Partial-Bug:#1562067
Partially-Implements: blueprint network-commands-options
Diffstat (limited to 'openstackclient')
| -rw-r--r-- | openstackclient/network/v2/port.py | 8 | ||||
| -rw-r--r-- | openstackclient/tests/unit/network/v2/test_port.py | 11 |
2 files changed, 17 insertions, 2 deletions
diff --git a/openstackclient/network/v2/port.py b/openstackclient/network/v2/port.py index d7268573..0df78e43 100644 --- a/openstackclient/network/v2/port.py +++ b/openstackclient/network/v2/port.py @@ -345,6 +345,10 @@ class ListPort(command.Lister): "This is the entity that uses the port (for example, " "network:dhcp).") ) + parser.add_argument( + '--network', + metavar='<network>', + help=_("List only ports connected to this network (name or ID)")) device_group = parser.add_mutually_exclusive_group() device_group.add_argument( '--router', @@ -387,6 +391,10 @@ class ListPort(command.Lister): server = utils.find_resource(compute_client.servers, parsed_args.server) filters['device_id'] = server.id + if parsed_args.network: + network = network_client.find_network(parsed_args.network, + ignore_missing=False) + filters['network_id'] = network.id data = network_client.ports(**filters) diff --git a/openstackclient/tests/unit/network/v2/test_port.py b/openstackclient/tests/unit/network/v2/test_port.py index afa67bba..271e8160 100644 --- a/openstackclient/tests/unit/network/v2/test_port.py +++ b/openstackclient/tests/unit/network/v2/test_port.py @@ -337,7 +337,11 @@ class TestListPort(TestPort): fake_router = network_fakes.FakeRouter.create_one_router({ 'id': 'fake-router-id', }) + fake_network = network_fakes.FakeNetwork.create_one_network({ + 'id': 'fake-network-id', + }) self.network.find_router = mock.Mock(return_value=fake_router) + self.network.find_network = mock.Mock(return_value=fake_network) self.app.client_manager.compute = mock.Mock() def test_port_list_no_options(self): @@ -414,11 +418,13 @@ class TestListPort(TestPort): arglist = [ '--device-owner', self._ports[0].device_owner, '--router', 'fake-router-name', + '--network', 'fake-network-name', ] verifylist = [ ('device_owner', self._ports[0].device_owner), - ('router', 'fake-router-name') + ('router', 'fake-router-name'), + ('network', 'fake-network-name') ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -427,7 +433,8 @@ class TestListPort(TestPort): self.network.ports.assert_called_once_with(**{ 'device_owner': self._ports[0].device_owner, - 'device_id': 'fake-router-id' + 'device_id': 'fake-router-id', + 'network_id': 'fake-network-id' }) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) |
