I spent a couple of hours yesterday trying to deploy a parent stack with two nested dynamodb table stacks. Both stacks were to be built from the same template and so provided a TableName parameter for the general purpose child stack to use along with its standard settings. This is one of the primary use cases for child stacks.

It didn’t work, and looking at #1921 it appears that the code treats the child stack as though it should just run independently.

I suspect that #2079 needs the obverse of this, which is the collection of outputs from a child to use with a peer.

Bucket=params['Bucket'], Tagging={'TagSet': tags})
    return result
def deploy_template(template, stack_name):
    if isinstance(template, string_types):
        template = parse_template(template)
    resource_map = template.get('Resources')
    if not resource_map:
        LOG.warning('CloudFormation template contains no Resources section')
        return
    next = resource_map
    iters = 10
    for i in range(0, iters):
        
        for resource_id, resource in next.items():
            stack_resource = describe_stack_resource(stack_name, resource_id)
            resource['__details__'] = stack_resource
        next = resources_to_deploy_next(resource_map, stack_name)
        if not next:
            return
        for resource_id, resource in next.items():
            deploy_resource(resource_id, resource_map, stack_name=stack_name)
    LOG.warning('Unable to resolve all dependencies and deploy all resources ' +
        'after %s iterations. Remaining (%s): %s' % (iters, len(next), next))
def delete_stack(stack_name, stack_resources):
    resources = dict([(r['LogicalResourceId'], common.clone_safe(r)) for r in stack_resources])
    for key, resource in resources.items():
        resources[key]['Properties'] = common.clone_safe(resource)
    for resource_id, resource in resources.items():
        delete_resource(resource_id, resources, stack_name)
def is_deployable_resource(resource):