Add show_nested to list_stacks RPC interface

Add a show_nested argument, defaulted to False

blueprint: list-nested
Change-Id: I3468325b3b383bf671391989d91ed384ea158472
This commit is contained in:
Steven Hardy 2014-08-13 15:20:46 +01:00
parent fdd8bec3a3
commit b4fb37e16b
6 changed files with 15 additions and 10 deletions

View File

@ -436,7 +436,7 @@ class EngineService(service.Service):
@request_context
def list_stacks(self, cnxt, limit=None, marker=None, sort_keys=None,
sort_dir=None, filters=None, tenant_safe=True,
show_deleted=False):
show_deleted=False, show_nested=False):
"""
The list_stacks method returns attributes of all stacks. It supports
pagination (``limit`` and ``marker``), sorting (``sort_keys`` and
@ -450,11 +450,13 @@ class EngineService(service.Service):
:param filters: a dict with attribute:value to filter the list
:param tenant_safe: if true, scope the request by the current tenant
:param show_deleted: if true, show soft-deleted stacks
:param show_nested: if true, show nested stacks
:returns: a list of formatted stacks
"""
stacks = parser.Stack.load_all(cnxt, limit, marker, sort_keys,
sort_dir, filters, tenant_safe,
show_deleted, resolve_data=False)
show_deleted, resolve_data=False,
show_nested=show_nested)
return [api.format_stack(stack) for stack in stacks]
@request_context

View File

@ -15,10 +15,10 @@ ENGINE_TOPIC = 'engine'
PARAM_KEYS = (
PARAM_TIMEOUT, PARAM_DISABLE_ROLLBACK, PARAM_ADOPT_STACK_DATA,
PARAM_SHOW_DELETED
PARAM_SHOW_DELETED, PARAM_SHOW_NESTED
) = (
'timeout_mins', 'disable_rollback', 'adopt_stack_data',
'show_deleted'
'show_deleted', 'show_nested'
)
STACK_KEYS = (

View File

@ -71,7 +71,7 @@ class EngineClient(object):
def list_stacks(self, ctxt, limit=None, marker=None, sort_keys=None,
sort_dir=None, filters=None, tenant_safe=True,
show_deleted=False):
show_deleted=False, show_nested=False):
"""
The list_stacks method returns attributes of all stacks. It supports
pagination (``limit`` and ``marker``), sorting (``sort_keys`` and
@ -85,6 +85,7 @@ class EngineClient(object):
:param filters: a dict with attribute:value to filter the list
:param tenant_safe: if true, scope the request by the current tenant
:param show_deleted: if true, show soft-deleted stacks
:param show_nested: if true, show nested stacks
:returns: a list of stacks
"""
return self.call(ctxt,
@ -92,7 +93,8 @@ class EngineClient(object):
sort_keys=sort_keys, marker=marker,
sort_dir=sort_dir, filters=filters,
tenant_safe=tenant_safe,
show_deleted=show_deleted))
show_deleted=show_deleted,
show_nested=show_nested))
def count_stacks(self, ctxt, filters=None, tenant_safe=True,
show_deleted=False):

View File

@ -160,7 +160,7 @@ class CfnStackControllerTest(HeatTestCase):
self.assertEqual(expected, result)
default_args = {'limit': None, 'sort_keys': None, 'marker': None,
'sort_dir': None, 'filters': None, 'tenant_safe': True,
'show_deleted': False}
'show_deleted': False, 'show_nested': False}
mock_call.assert_called_once_with(
dummy_req.context, ('list_stacks', default_args))

View File

@ -374,7 +374,7 @@ class StackControllerTest(ControllerTest, HeatTestCase):
self.assertEqual(expected, result)
default_args = {'limit': None, 'sort_keys': None, 'marker': None,
'sort_dir': None, 'filters': None, 'tenant_safe': True,
'show_deleted': False}
'show_deleted': False, 'show_nested': False}
mock_call.assert_called_once_with(
req.context, ('list_stacks', default_args))
@ -395,7 +395,7 @@ class StackControllerTest(ControllerTest, HeatTestCase):
rpc_call_args, _ = mock_call.call_args
engine_args = rpc_call_args[1][1]
self.assertEqual(7, len(engine_args))
self.assertEqual(8, len(engine_args))
self.assertIn('limit', engine_args)
self.assertIn('sort_keys', engine_args)
self.assertIn('marker', engine_args)
@ -607,7 +607,7 @@ class StackControllerTest(ControllerTest, HeatTestCase):
self.assertEqual(expected, result)
default_args = {'limit': None, 'sort_keys': None, 'marker': None,
'sort_dir': None, 'filters': None, 'tenant_safe': True,
'show_deleted': False}
'show_deleted': False, 'show_nested': False}
mock_call.assert_called_once_with(
req.context, ('list_stacks', default_args))

View File

@ -83,6 +83,7 @@ class EngineRpcAPITestCase(testtools.TestCase):
'filters': mock.ANY,
'tenant_safe': mock.ANY,
'show_deleted': mock.ANY,
'show_nested': mock.ANY,
}
self._test_engine_api('list_stacks', 'call', **default_args)