diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-11-10 18:09:14 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-11-10 18:09:14 +0000 |
| commit | 81c0129365d175eadafdcea9cd52d9d0b76d07b3 (patch) | |
| tree | 9409ba223f43c07a2d43fb25179d7429b7fe1739 | |
| parent | 496dbfc52eb7af323885ba4a94577f4760a3b896 (diff) | |
| parent | a1e305641430af48b72c941f87c7ffcc182b3f9a (diff) | |
| download | python-openstackclient-81c0129365d175eadafdcea9cd52d9d0b76d07b3.tar.gz | |
Merge "Add option to allow filtering by mac-address on port list"
| -rw-r--r-- | doc/source/command-objects/port.rst | 5 | ||||
| -rw-r--r-- | openstackclient/network/v2/port.py | 7 | ||||
| -rw-r--r-- | openstackclient/tests/unit/network/v2/test_port.py | 26 | ||||
| -rw-r--r-- | releasenotes/notes/bug-1634333-a2b04d33ca39440e.yaml | 6 |
4 files changed, 42 insertions, 2 deletions
diff --git a/doc/source/command-objects/port.rst b/doc/source/command-objects/port.rst index fe256d09..f4dbe263 100644 --- a/doc/source/command-objects/port.rst +++ b/doc/source/command-objects/port.rst @@ -127,6 +127,7 @@ List ports [--device-owner <device-owner>] [--router <router> | --server <server>] [--network <network>] + [--mac-address <mac-address>] [--long] .. option:: --device-owner <device-owner> @@ -146,6 +147,10 @@ List ports List only ports attached to this network (name or ID) +.. option:: --mac-address <mac-address> + + List only ports with this MAC address + .. option:: --long List additional fields in output diff --git a/openstackclient/network/v2/port.py b/openstackclient/network/v2/port.py index 86174d53..8916fd73 100644 --- a/openstackclient/network/v2/port.py +++ b/openstackclient/network/v2/port.py @@ -385,6 +385,11 @@ class ListPort(command.Lister): help=_("List only ports attached to this server (name or ID)"), ) parser.add_argument( + '--mac-address', + metavar='<mac-address>', + help=_("List only ports with this MAC address") + ) + parser.add_argument( '--long', action='store_true', default=False, @@ -429,6 +434,8 @@ class ListPort(command.Lister): network = network_client.find_network(parsed_args.network, ignore_missing=False) filters['network_id'] = network.id + if parsed_args.mac_address: + filters['mac_address'] = parsed_args.mac_address 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 4ff278a9..4f6eac53 100644 --- a/openstackclient/tests/unit/network/v2/test_port.py +++ b/openstackclient/tests/unit/network/v2/test_port.py @@ -530,12 +530,14 @@ class TestListPort(TestPort): '--device-owner', self._ports[0].device_owner, '--router', 'fake-router-name', '--network', 'fake-network-name', + '--mac-address', self._ports[0].mac_address, ] verifylist = [ ('device_owner', self._ports[0].device_owner), ('router', 'fake-router-name'), - ('network', 'fake-network-name') + ('network', 'fake-network-name'), + ('mac_address', self._ports[0].mac_address) ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -545,7 +547,27 @@ class TestListPort(TestPort): self.network.ports.assert_called_once_with(**{ 'device_owner': self._ports[0].device_owner, 'device_id': 'fake-router-id', - 'network_id': 'fake-network-id' + 'network_id': 'fake-network-id', + 'mac_address': self._ports[0].mac_address + }) + self.assertEqual(self.columns, columns) + self.assertEqual(self.data, list(data)) + + def test_port_list_mac_address_opt(self): + arglist = [ + '--mac-address', self._ports[0].mac_address, + ] + + verifylist = [ + ('mac_address', self._ports[0].mac_address) + ] + + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + columns, data = self.cmd.take_action(parsed_args) + + self.network.ports.assert_called_once_with(**{ + 'mac_address': self._ports[0].mac_address }) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) diff --git a/releasenotes/notes/bug-1634333-a2b04d33ca39440e.yaml b/releasenotes/notes/bug-1634333-a2b04d33ca39440e.yaml new file mode 100644 index 00000000..4ecee30a --- /dev/null +++ b/releasenotes/notes/bug-1634333-a2b04d33ca39440e.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + Add support to allow filtering ports via ``--mac-address`` + option to the ``port list`` command. + [Bug `1634333 <https://bugs.launchpad.net/bugs/1634333>`_] |
