diff options
| author | songminglong <songminglong@cmss.chinamobile.com> | 2016-11-13 10:11:03 +0800 |
|---|---|---|
| committer | songminglong <songminglong@cmss.chinamobile.com> | 2016-11-13 10:11:03 +0800 |
| commit | 839c5f7a84b48cecbc80606e894b7906fa01d66b (patch) | |
| tree | d33b72d4c839af8a8dbe00b299350273a8790a7f /openstackclient/network | |
| parent | 95c26cebaa6bf7419a54d632b07ea5303ad0d134 (diff) | |
| download | python-openstackclient-839c5f7a84b48cecbc80606e894b7906fa01d66b.tar.gz | |
Add '--network' and other options to floating ip list
The patch adds filtering '--network', '--port',
'--fixed-ip-address' options to floating ip list command
Partial-Bug: #1614379
Change-Id: I82319d0985d9e864431097c90264a20bf88167cc
Diffstat (limited to 'openstackclient/network')
| -rw-r--r-- | openstackclient/network/v2/floating_ip.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/openstackclient/network/v2/floating_ip.py b/openstackclient/network/v2/floating_ip.py index 7ae5d448..2aac8e7b 100644 --- a/openstackclient/network/v2/floating_ip.py +++ b/openstackclient/network/v2/floating_ip.py @@ -205,7 +205,31 @@ class DeleteIPFloating(DeleteFloatingIP): class ListFloatingIP(common.NetworkAndComputeLister): """List floating IP(s)""" + def update_parser_network(self, parser): + parser.add_argument( + '--network', + metavar='<network>', + help=_("List floating IP(s) according to " + "given network (name or ID)") + ) + parser.add_argument( + '--port', + metavar='<port>', + help=_("List floating IP(s) according to " + "given port (name or ID)") + ) + parser.add_argument( + '--fixed-ip-address', + metavar='<fixed-ip-address>', + help=_("List floating IP(s) according to " + "given fixed IP address") + ) + + return parser + def take_action_network(self, client, parsed_args): + network_client = self.app.client_manager.network + columns = ( 'id', 'floating_ip_address', @@ -224,6 +248,18 @@ class ListFloatingIP(common.NetworkAndComputeLister): ) query = {} + + if parsed_args.network is not None: + network = network_client.find_network(parsed_args.network, + ignore_missing=False) + query['floating_network_id'] = network.id + if parsed_args.port is not None: + port = network_client.find_port(parsed_args.port, + ignore_missing=False) + query['port_id'] = port.id + if parsed_args.fixed_ip_address is not None: + query['fixed_ip_address'] = parsed_args.fixed_ip_address + data = client.ips(**query) return (headers, |
