summaryrefslogtreecommitdiff
path: root/openstackclient/network
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-02-25 21:15:47 +0000
committerGerrit Code Review <review@openstack.org>2016-02-25 21:15:47 +0000
commitfbc03104f66a80e1d7f3c7880d7db82587a7ab6c (patch)
treebb9f9e68cbba28f3fbdc25ba30832542e8b96df1 /openstackclient/network
parent6176e802b3a4125e983eba3805f3f90881622bc4 (diff)
parentf0960f0fef263298e56d7e81acf50597073becc7 (diff)
downloadpython-openstackclient-fbc03104f66a80e1d7f3c7880d7db82587a7ab6c.tar.gz
Merge "Floating IP: Neutron support for "ip floating show" command"
Diffstat (limited to 'openstackclient/network')
-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)