diff options
| author | Yan Xing'an <yanxingan@cmss.chinamobile.com> | 2016-10-17 22:33:35 -0700 |
|---|---|---|
| committer | Yan Xing'an <yanxingan@cmss.chinamobile.com> | 2016-10-19 02:50:47 -0700 |
| commit | a1e305641430af48b72c941f87c7ffcc182b3f9a (patch) | |
| tree | 18d82e1109690ea72faee64e36c8ab49fe5fc44a /openstackclient | |
| parent | 5e3ec1b42faf7dc49722b58829b6c2cf5c15da79 (diff) | |
| download | python-openstackclient-a1e305641430af48b72c941f87c7ffcc182b3f9a.tar.gz | |
Add option to allow filtering by mac-address on port list
Added support to allow filtering ports via --mac-address
option to the port list command.
Change-Id: I903e443f2f9057571d46520c4cafb88d1972c0cb
Partial-bug: #1634333
Partially-Implements: blueprint network-commands-options
Diffstat (limited to 'openstackclient')
| -rw-r--r-- | openstackclient/network/v2/port.py | 7 | ||||
| -rw-r--r-- | openstackclient/tests/unit/network/v2/test_port.py | 26 |
2 files changed, 31 insertions, 2 deletions
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)) |
