diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-09-20 06:32:46 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-09-20 06:32:46 +0000 |
| commit | a51406da5a84ea5f721771d2eb60f05d4c129152 (patch) | |
| tree | 90ef6b90d7c6f2c667434664eff249aace5ce7bf | |
| parent | 5ec435e706d137afb714cfd5c5ddbd40d8107a9e (diff) | |
| parent | 554607eb3dab879da8e172eacb72930e54f0acf4 (diff) | |
| download | python-openstackclient-a51406da5a84ea5f721771d2eb60f05d4c129152.tar.gz | |
Merge "Provide support to list ports by network"
| -rw-r--r-- | doc/source/command-objects/port.rst | 5 | ||||
| -rw-r--r-- | openstackclient/network/v2/port.py | 8 | ||||
| -rw-r--r-- | openstackclient/tests/unit/network/v2/test_port.py | 11 | ||||
| -rw-r--r-- | releasenotes/notes/add-network-list-option-to-ports-9d101344ddeb3e64.yaml | 7 |
4 files changed, 29 insertions, 2 deletions
diff --git a/doc/source/command-objects/port.rst b/doc/source/command-objects/port.rst index 771f2f8d..04cf59a2 100644 --- a/doc/source/command-objects/port.rst +++ b/doc/source/command-objects/port.rst @@ -116,6 +116,7 @@ List ports os port list [--device-owner <device-owner>] [--router <router> | --server <server>] + [--network <network>] .. option:: --device-owner <device-owner> @@ -130,6 +131,10 @@ List ports List only ports attached to this server (name or ID) +.. option:: --network <network> + + List only ports attached to this network (name or ID) + port set -------- 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)) diff --git a/releasenotes/notes/add-network-list-option-to-ports-9d101344ddeb3e64.yaml b/releasenotes/notes/add-network-list-option-to-ports-9d101344ddeb3e64.yaml new file mode 100644 index 00000000..478b29a3 --- /dev/null +++ b/releasenotes/notes/add-network-list-option-to-ports-9d101344ddeb3e64.yaml @@ -0,0 +1,7 @@ +--- +features: + - | + Ports can now be listed as per the networks they are + connected to by using the ``--network`` option with + the ``port list`` CLI. + [ Blueprint `network-commands-options <https://blueprints.launchpad.net/python-openstackclient/+spec/network-commands-options>`_] |
