summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorRichard Theis <rtheis@us.ibm.com>2016-10-05 08:09:16 -0500
committerRichard Theis <rtheis@us.ibm.com>2016-10-05 08:50:58 -0500
commitd6cc50f0daac71fbe2a18059be94f6d01a26d78d (patch)
tree35429ab484616f219957d2290a636678d79413bf /openstackclient
parent70cb628278642e0e275c3e8d294bb73c17a97f5e (diff)
downloadpython-openstackclient-d6cc50f0daac71fbe2a18059be94f6d01a26d78d.tar.gz
SDK Refactor: Prepare subnet pool commands
Prepare the OSC "subnet pool" commands for the SDK refactor. See [1] for details. [1] https://etherpad.openstack.org/p/osc-network-command-sdk-support Change-Id: I6d8cb7a079cf115ee25d48d9175e31f0f995c502 Partially-Implements: blueprint network-command-sdk-support
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/network/v2/subnet_pool.py35
-rw-r--r--openstackclient/tests/unit/network/v2/fakes.py5
-rw-r--r--openstackclient/tests/unit/network/v2/test_subnet_pool.py8
3 files changed, 33 insertions, 15 deletions
diff --git a/openstackclient/network/v2/subnet_pool.py b/openstackclient/network/v2/subnet_pool.py
index a01d2f7b..2e0a32c2 100644
--- a/openstackclient/network/v2/subnet_pool.py
+++ b/openstackclient/network/v2/subnet_pool.py
@@ -22,17 +22,21 @@ from osc_lib import utils
from openstackclient.i18n import _
from openstackclient.identity import common as identity_common
+from openstackclient.network import sdk_utils
LOG = logging.getLogger(__name__)
def _get_columns(item):
- columns = list(item.keys())
- if 'tenant_id' in columns:
- columns.remove('tenant_id')
- columns.append('project_id')
- return tuple(sorted(columns))
+ column_map = {
+ 'default_prefix_length': 'default_prefixlen',
+ 'is_shared': 'shared',
+ 'maximum_prefix_length': 'max_prefixlen',
+ 'minimum_prefix_length': 'min_prefixlen',
+ 'tenant_id': 'project_id',
+ }
+ return sdk_utils.get_osc_show_columns_for_sdk_resource(item, column_map)
_formatters = {
@@ -134,6 +138,8 @@ def _add_default_options(parser):
)
+# TODO(rtheis): Use the SDK resource mapped attribute names once the
+# OSC minimum requirements include SDK 1.0.
class CreateSubnetPool(command.ShowOne):
"""Create subnet pool"""
@@ -184,9 +190,9 @@ class CreateSubnetPool(command.ShowOne):
if "prefixes" not in attrs:
attrs['prefixes'] = []
obj = client.create_subnet_pool(**attrs)
- columns = _get_columns(obj)
+ display_columns, columns = _get_columns(obj)
data = utils.get_item_properties(obj, columns, formatters=_formatters)
- return (columns, data)
+ return (display_columns, data)
class DeleteSubnetPool(command.Command):
@@ -223,6 +229,8 @@ class DeleteSubnetPool(command.Command):
raise exceptions.CommandError(msg)
+# TODO(rtheis): Use only the SDK resource mapped attribute names once the
+# OSC minimum requirements include SDK 1.0.
class ListSubnetPool(command.Lister):
"""List subnet pools"""
@@ -281,8 +289,10 @@ class ListSubnetPool(command.Lister):
filters = {}
if parsed_args.share:
filters['shared'] = True
+ filters['is_shared'] = True
elif parsed_args.no_share:
filters['shared'] = False
+ filters['is_shared'] = False
if parsed_args.default:
filters['is_default'] = True
elif parsed_args.no_default:
@@ -294,6 +304,7 @@ class ListSubnetPool(command.Lister):
parsed_args.project_domain,
).id
filters['tenant_id'] = project_id
+ filters['project_id'] = project_id
if parsed_args.name is not None:
filters['name'] = parsed_args.name
if parsed_args.address_scope:
@@ -308,8 +319,8 @@ class ListSubnetPool(command.Lister):
if parsed_args.long:
headers += ('Default Prefix Length', 'Address Scope',
'Default Subnet Pool', 'Shared')
- columns += ('default_prefixlen', 'address_scope_id',
- 'is_default', 'shared')
+ columns += ('default_prefix_length', 'address_scope_id',
+ 'is_default', 'is_shared')
return (headers,
(utils.get_item_properties(
@@ -318,6 +329,8 @@ class ListSubnetPool(command.Lister):
) for s in data))
+# TODO(rtheis): Use the SDK resource mapped attribute names once the
+# OSC minimum requirements include SDK 1.0.
class SetSubnetPool(command.Command):
"""Set subnet pool properties"""
@@ -388,9 +401,9 @@ class ShowSubnetPool(command.ShowOne):
parsed_args.subnet_pool,
ignore_missing=False
)
- columns = _get_columns(obj)
+ display_columns, columns = _get_columns(obj)
data = utils.get_item_properties(obj, columns, formatters=_formatters)
- return (columns, data)
+ return (display_columns, data)
class UnsetSubnetPool(command.Command):
diff --git a/openstackclient/tests/unit/network/v2/fakes.py b/openstackclient/tests/unit/network/v2/fakes.py
index ed3579b7..667f76b8 100644
--- a/openstackclient/tests/unit/network/v2/fakes.py
+++ b/openstackclient/tests/unit/network/v2/fakes.py
@@ -1067,6 +1067,11 @@ class FakeSubnetPool(object):
)
# Set attributes with special mapping in OpenStack SDK.
+ subnet_pool.default_prefix_length = \
+ subnet_pool_attrs['default_prefixlen']
+ subnet_pool.is_shared = subnet_pool_attrs['shared']
+ subnet_pool.maximum_prefix_length = subnet_pool_attrs['max_prefixlen']
+ subnet_pool.minimum_prefix_length = subnet_pool_attrs['min_prefixlen']
subnet_pool.project_id = subnet_pool_attrs['tenant_id']
return subnet_pool
diff --git a/openstackclient/tests/unit/network/v2/test_subnet_pool.py b/openstackclient/tests/unit/network/v2/test_subnet_pool.py
index fa6ffff3..f12537e7 100644
--- a/openstackclient/tests/unit/network/v2/test_subnet_pool.py
+++ b/openstackclient/tests/unit/network/v2/test_subnet_pool.py
@@ -435,7 +435,7 @@ class TestListSubnetPool(TestSubnetPool):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
- filters = {'shared': False}
+ filters = {'shared': False, 'is_shared': False}
self.network.subnet_pools.assert_called_once_with(**filters)
self.assertEqual(self.columns, columns)
@@ -451,7 +451,7 @@ class TestListSubnetPool(TestSubnetPool):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
- filters = {'shared': True}
+ filters = {'shared': True, 'is_shared': True}
self.network.subnet_pools.assert_called_once_with(**filters)
self.assertEqual(self.columns, columns)
@@ -501,7 +501,7 @@ class TestListSubnetPool(TestSubnetPool):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
- filters = {'tenant_id': project.id}
+ filters = {'tenant_id': project.id, 'project_id': project.id}
self.network.subnet_pools.assert_called_once_with(**filters)
self.assertEqual(self.columns, columns)
@@ -521,7 +521,7 @@ class TestListSubnetPool(TestSubnetPool):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
- filters = {'tenant_id': project.id}
+ filters = {'tenant_id': project.id, 'project_id': project.id}
self.network.subnet_pools.assert_called_once_with(**filters)
self.assertEqual(self.columns, columns)