diff --git a/openstackclient/network/v2/router.py b/openstackclient/network/v2/router.py index e4eea3f8ab..96aa55b2f1 100644 --- a/openstackclient/network/v2/router.py +++ b/openstackclient/network/v2/router.py @@ -41,6 +41,14 @@ _formatters = { } +def _get_columns(item): + columns = item.keys() + if 'tenant_id' in columns: + columns.remove('tenant_id') + columns.append('project_id') + return tuple(sorted(columns)) + + def _get_attrs(client_manager, parsed_args): attrs = {} if parsed_args.name is not None: @@ -129,14 +137,10 @@ class CreateRouter(command.ShowOne): attrs = _get_attrs(self.app.client_manager, parsed_args) obj = client.create_router(**attrs) - columns = sorted(obj.keys()) + columns = _get_columns(obj) data = utils.get_item_properties(obj, columns, formatters=_formatters) - if 'tenant_id' in columns: - # Rename "tenant_id" to "project_id". - index = columns.index('tenant_id') - columns[index] = 'project_id' - return (tuple(columns), data) + return columns, data class DeleteRouter(command.Command): @@ -312,6 +316,6 @@ class ShowRouter(command.ShowOne): def take_action(self, parsed_args): client = self.app.client_manager.network obj = client.find_router(parsed_args.router, ignore_missing=False) - columns = sorted(obj.keys()) + columns = _get_columns(obj) data = utils.get_item_properties(obj, columns, formatters=_formatters) - return (tuple(columns), data) + return columns, data diff --git a/openstackclient/tests/network/v2/fakes.py b/openstackclient/tests/network/v2/fakes.py index cfd057292a..9e6bf97f65 100644 --- a/openstackclient/tests/network/v2/fakes.py +++ b/openstackclient/tests/network/v2/fakes.py @@ -370,6 +370,10 @@ class FakeRouter(object): router = fakes.FakeResource(info=copy.deepcopy(router_attrs), methods=copy.deepcopy(router_methods), loaded=True) + + # Set attributes with special mapping in OpenStack SDK. + router.project_id = router_attrs['tenant_id'] + return router @staticmethod diff --git a/openstackclient/tests/network/v2/test_router.py b/openstackclient/tests/network/v2/test_router.py index 794f8ab5c6..68c225e77d 100644 --- a/openstackclient/tests/network/v2/test_router.py +++ b/openstackclient/tests/network/v2/test_router.py @@ -383,7 +383,7 @@ class TestShowRouter(TestRouter): 'ha', 'id', 'name', - 'tenant_id', + 'project_id', ) data = ( @@ -392,7 +392,7 @@ class TestShowRouter(TestRouter): _router.ha, _router.id, _router.name, - _router.tenant_id, + _router.project_id, ) def setUp(self):