summaryrefslogtreecommitdiff
path: root/openstackclient/network
diff options
context:
space:
mode:
authorJens Rosenboom <j.rosenboom@x-ion.de>2017-02-27 15:37:50 +0100
committerJens Rosenboom <j.rosenboom@x-ion.de>2017-03-09 08:21:13 +0100
commit3e6356a4d87351c84a29e3a44f60f0544e2947b6 (patch)
tree012333a3aec482a8eb65c573adf92af82b50a24d /openstackclient/network
parentc6059bed4ae5fe6d6816c6ab1d56a763366b3cc9 (diff)
downloadpython-openstackclient-3e6356a4d87351c84a29e3a44f60f0544e2947b6.tar.gz
Fix handling the use_default_subnet_pool attribute
The attribute formerly wasn't working because it is lacking support in the SDK. The patch to add it[1] introduced a modified spelling, so we should be matching this here. Also make sure that the attribute is not shown when displaying subnet objects, as it is meant to be invisible[2]. [1] I72c0be77d96f3891748cdd69c382211dc20dbf5e [2] http://git.openstack.org/cgit/openstack/neutron/tree/neutron/extensions/default_subnetpools.py#n23 Change-Id: Ic125b818a6082d76a1114fe89e0b1fcf4c7356b0 Partial-Bug: 1668223
Diffstat (limited to 'openstackclient/network')
-rw-r--r--openstackclient/network/sdk_utils.py23
-rw-r--r--openstackclient/network/v2/subnet.py10
2 files changed, 29 insertions, 4 deletions
diff --git a/openstackclient/network/sdk_utils.py b/openstackclient/network/sdk_utils.py
index 7bd54e46..04f168be 100644
--- a/openstackclient/network/sdk_utils.py
+++ b/openstackclient/network/sdk_utils.py
@@ -13,8 +13,24 @@
import six
-# Get the OSC show command display and attribute columns for an SDK resource.
-def get_osc_show_columns_for_sdk_resource(sdk_resource, osc_column_map):
+def get_osc_show_columns_for_sdk_resource(
+ sdk_resource,
+ osc_column_map,
+ invisible_columns=[]
+):
+ """Get and filter the display and attribute columns for an SDK resource.
+
+ Common utility function for preparing the output of an OSC show command.
+ Some of the columns may need to get renamed, others made invisible.
+
+ :param sdk_resource: An SDK resource
+ :param osc_column_map: A hash of mappings for display column names
+ :param invisible_columns: A list of invisible column names
+
+ :returns: Two tuples containing the names of the display and attribute
+ columns
+ """
+
if getattr(sdk_resource, 'allow_get', None) is not None:
resource_dict = sdk_resource.to_dict(
body=True, headers=False, ignore_none=False)
@@ -24,6 +40,9 @@ def get_osc_show_columns_for_sdk_resource(sdk_resource, osc_column_map):
# Build the OSC column names to display for the SDK resource.
attr_map = {}
display_columns = list(resource_dict.keys())
+ for col_name in invisible_columns:
+ if col_name in display_columns:
+ display_columns.remove(col_name)
for sdk_attr, osc_attr in six.iteritems(osc_column_map):
if sdk_attr in display_columns:
attr_map[osc_attr] = sdk_attr
diff --git a/openstackclient/network/v2/subnet.py b/openstackclient/network/v2/subnet.py
index 2771858b..403b4cd2 100644
--- a/openstackclient/network/v2/subnet.py
+++ b/openstackclient/network/v2/subnet.py
@@ -132,7 +132,13 @@ def _get_columns(item):
'subnet_pool_id': 'subnetpool_id',
'tenant_id': 'project_id',
}
- return sdk_utils.get_osc_show_columns_for_sdk_resource(item, column_map)
+ # Do not show this column when displaying a subnet
+ invisible_columns = ['use_default_subnetpool']
+ return sdk_utils.get_osc_show_columns_for_sdk_resource(
+ item,
+ column_map,
+ invisible_columns=invisible_columns
+ )
def convert_entries_to_nexthop(entries):
@@ -179,7 +185,7 @@ def _get_attrs(client_manager, parsed_args, is_create=True):
ignore_missing=False)
attrs['subnetpool_id'] = subnet_pool.id
if parsed_args.use_default_subnet_pool:
- attrs['use_default_subnetpool'] = True
+ attrs['use_default_subnet_pool'] = True
if parsed_args.prefix_length is not None:
attrs['prefixlen'] = parsed_args.prefix_length
if parsed_args.subnet_range is not None: