Skip to content

Commit b8438ad

Browse files
committed
Add floating IP filter to floating IP list command
Add a parameter ``--floating-ip-address`` to ``floating ip list`` because it's supported by the API and also more efficient than the current ``floating ip show``. This also works as a work-around for pagination issues ``floating ip show`` might run into with an IP parameter. Change-Id: I113e3fa2495e1e86bb553c55c44f71a3f9f49d23
1 parent 2ab3396 commit b8438ad

3 files changed

Lines changed: 31 additions & 0 deletions

File tree

doc/source/cli/command-objects/floating-ip.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,12 @@ List floating IP(s)
144144
145145
*Network version 2 only*
146146
147+
.. option:: --floating-ip-address <ip-address>
148+
149+
List floating IP(s) according to given floating IP address
150+
151+
*Network version 2 only*
152+
147153
.. option:: --long
148154
149155
List additional fields in output

openstackclient/network/v2/floating_ip.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,12 @@ def update_parser_network(self, parser):
236236
help=_("List floating IP(s) according to "
237237
"given fixed IP address")
238238
)
239+
parser.add_argument(
240+
'--floating-ip-address',
241+
metavar='<ip-address>',
242+
help=_("List floating IP(s) according to "
243+
"given floating IP address")
244+
)
239245
parser.add_argument(
240246
'--long',
241247
action='store_true',
@@ -316,6 +322,8 @@ def take_action_network(self, client, parsed_args):
316322
query['port_id'] = port.id
317323
if parsed_args.fixed_ip_address is not None:
318324
query['fixed_ip_address'] = parsed_args.fixed_ip_address
325+
if parsed_args.floating_ip_address is not None:
326+
query['floating_ip_address'] = parsed_args.floating_ip_address
319327
if parsed_args.status:
320328
query['status'] = parsed_args.status
321329
if parsed_args.project is not None:

openstackclient/tests/unit/network/v2/test_floating_ip_network.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -504,6 +504,23 @@ def test_floating_ip_list_fixed_ip_address(self):
504504
self.assertEqual(self.columns, columns)
505505
self.assertEqual(self.data, list(data))
506506

507+
def test_floating_ip_list_floating_ip_address(self):
508+
arglist = [
509+
'--floating-ip-address', self.floating_ips[0].floating_ip_address,
510+
]
511+
verifylist = [
512+
('floating_ip_address', self.floating_ips[0].floating_ip_address),
513+
]
514+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
515+
516+
columns, data = self.cmd.take_action(parsed_args)
517+
518+
self.network.ips.assert_called_once_with(**{
519+
'floating_ip_address': self.floating_ips[0].floating_ip_address,
520+
})
521+
self.assertEqual(self.columns, columns)
522+
self.assertEqual(self.data, list(data))
523+
507524
def test_floating_ip_list_long(self):
508525
arglist = ['--long', ]
509526
verifylist = [('long', True), ]

0 commit comments

Comments
 (0)