summaryrefslogtreecommitdiff
path: root/openstackclient/network/v2/floating_ip.py
diff options
context:
space:
mode:
authorTang Chen <chen.tang@easystack.cn>2016-02-24 17:26:13 +0800
committerTang Chen <chen.tang@easystack.cn>2016-02-24 17:26:13 +0800
commitf0960f0fef263298e56d7e81acf50597073becc7 (patch)
tree4d1dad68b652d5b4e900fd434059256e4e5ad3ca /openstackclient/network/v2/floating_ip.py
parente5fe9a70718589b8ce7d455c3e2a3524f85510cb (diff)
downloadpython-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.py35
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)