summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2019-01-15 07:48:25 +0000
committerGerrit Code Review <review@openstack.org>2019-01-15 07:48:25 +0000
commitdd1118e9660d4f772fcc0f99c8a26698d364cf84 (patch)
treef2abbf26f317527e8b7cd3dc1948f89bca54306f
parent2dd5393167119c043ae125fead9f8ed9ba84241d (diff)
parentb8438adbbf6f2024c9440ffec064088a02c807df (diff)
downloadpython-openstackclient-dd1118e9660d4f772fcc0f99c8a26698d364cf84.tar.gz
Merge "Add floating IP filter to floating IP list command"
-rw-r--r--doc/source/cli/command-objects/floating-ip.rst6
-rw-r--r--openstackclient/network/v2/floating_ip.py8
-rw-r--r--openstackclient/tests/unit/network/v2/test_floating_ip_network.py17
3 files changed, 31 insertions, 0 deletions
diff --git a/doc/source/cli/command-objects/floating-ip.rst b/doc/source/cli/command-objects/floating-ip.rst
index 14615749..749c32d6 100644
--- a/doc/source/cli/command-objects/floating-ip.rst
+++ b/doc/source/cli/command-objects/floating-ip.rst
@@ -144,6 +144,12 @@ List floating IP(s)
*Network version 2 only*
+.. option:: --floating-ip-address <ip-address>
+
+ List floating IP(s) according to given floating IP address
+
+ *Network version 2 only*
+
.. option:: --long
List additional fields in output
diff --git a/openstackclient/network/v2/floating_ip.py b/openstackclient/network/v2/floating_ip.py
index e1ec8274..8ac8e107 100644
--- a/openstackclient/network/v2/floating_ip.py
+++ b/openstackclient/network/v2/floating_ip.py
@@ -237,6 +237,12 @@ class ListFloatingIP(common.NetworkAndComputeLister):
"given fixed IP address")
)
parser.add_argument(
+ '--floating-ip-address',
+ metavar='<ip-address>',
+ help=_("List floating IP(s) according to "
+ "given floating IP address")
+ )
+ parser.add_argument(
'--long',
action='store_true',
default=False,
@@ -316,6 +322,8 @@ class ListFloatingIP(common.NetworkAndComputeLister):
query['port_id'] = port.id
if parsed_args.fixed_ip_address is not None:
query['fixed_ip_address'] = parsed_args.fixed_ip_address
+ if parsed_args.floating_ip_address is not None:
+ query['floating_ip_address'] = parsed_args.floating_ip_address
if parsed_args.status:
query['status'] = parsed_args.status
if parsed_args.project is not None:
diff --git a/openstackclient/tests/unit/network/v2/test_floating_ip_network.py b/openstackclient/tests/unit/network/v2/test_floating_ip_network.py
index 209c01cf..cbd4da38 100644
--- a/openstackclient/tests/unit/network/v2/test_floating_ip_network.py
+++ b/openstackclient/tests/unit/network/v2/test_floating_ip_network.py
@@ -504,6 +504,23 @@ class TestListFloatingIPNetwork(TestFloatingIPNetwork):
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, list(data))
+ def test_floating_ip_list_floating_ip_address(self):
+ arglist = [
+ '--floating-ip-address', self.floating_ips[0].floating_ip_address,
+ ]
+ verifylist = [
+ ('floating_ip_address', self.floating_ips[0].floating_ip_address),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+
+ self.network.ips.assert_called_once_with(**{
+ 'floating_ip_address': self.floating_ips[0].floating_ip_address,
+ })
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.data, list(data))
+
def test_floating_ip_list_long(self):
arglist = ['--long', ]
verifylist = [('long', True), ]