summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-11-10 18:09:14 +0000
committerGerrit Code Review <review@openstack.org>2016-11-10 18:09:14 +0000
commit81c0129365d175eadafdcea9cd52d9d0b76d07b3 (patch)
tree9409ba223f43c07a2d43fb25179d7429b7fe1739
parent496dbfc52eb7af323885ba4a94577f4760a3b896 (diff)
parenta1e305641430af48b72c941f87c7ffcc182b3f9a (diff)
downloadpython-openstackclient-81c0129365d175eadafdcea9cd52d9d0b76d07b3.tar.gz
Merge "Add option to allow filtering by mac-address on port list"
-rw-r--r--doc/source/command-objects/port.rst5
-rw-r--r--openstackclient/network/v2/port.py7
-rw-r--r--openstackclient/tests/unit/network/v2/test_port.py26
-rw-r--r--releasenotes/notes/bug-1634333-a2b04d33ca39440e.yaml6
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>`_]