diff options
author | Tang Chen <chen.tang@easystack.cn> | 2016-02-24 17:26:13 +0800 |
---|---|---|
committer | Tang Chen <chen.tang@easystack.cn> | 2016-02-24 17:26:13 +0800 |
commit | f0960f0fef263298e56d7e81acf50597073becc7 (patch) | |
tree | 4d1dad68b652d5b4e900fd434059256e4e5ad3ca /openstackclient/network/v2/floating_ip.py | |
parent | e5fe9a70718589b8ce7d455c3e2a3524f85510cb (diff) | |
download | python-openstackclient-f0960f0fef263298e56d7e81acf50597073becc7.tar.gz |
Floating IP: Neutron support for "ip floating show" command
Change-Id: I30350076621c83c758927444e5f8bcc2b7d0fc74
Partial-Bug: 1519502
Related-to: blueprint neutron-client
Diffstat (limited to 'openstackclient/network/v2/floating_ip.py')
-rw-r--r-- | openstackclient/network/v2/floating_ip.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/openstackclient/network/v2/floating_ip.py b/openstackclient/network/v2/floating_ip.py index 23b83201..e0a65a48 100644 --- a/openstackclient/network/v2/floating_ip.py +++ b/openstackclient/network/v2/floating_ip.py @@ -17,6 +17,14 @@ from openstackclient.common import utils from openstackclient.network import common +def _get_columns(item): + columns = item.keys() + if 'tenant_id' in columns: + columns.remove('tenant_id') + columns.append('project_id') + return tuple(sorted(columns)) + + class DeleteFloatingIP(common.NetworkAndComputeCommand): """Delete floating IP""" @@ -89,3 +97,30 @@ class ListFloatingIP(common.NetworkAndComputeLister): s, columns, formatters={}, ) for s in data)) + + +class ShowFloatingIP(common.NetworkAndComputeShowOne): + """Show floating IP details""" + + def update_parser_common(self, parser): + parser.add_argument( + 'floating_ip', + metavar="<floating-ip>", + help=("Floating IP to display (IP address or ID)") + ) + return parser + + def take_action_network(self, client, parsed_args): + obj = client.find_ip(parsed_args.floating_ip, ignore_missing=False) + columns = _get_columns(obj) + data = utils.get_item_properties(obj, columns) + return (columns, data) + + def take_action_compute(self, client, parsed_args): + obj = utils.find_resource( + client.floating_ips, + parsed_args.floating_ip, + ) + columns = _get_columns(obj._info) + data = utils.get_dict_properties(obj._info, columns) + return (columns, data) |