'Return detailed information about one or all stacks.
:param cnxt: RPC context.
:param stack_identity: Name of the stack you want to show, or None
to show all
:param resolve_outputs: If True, outputs for given stack/stacks will
be resolved'

@context.request_context
def show_stack(self, cnxt, stack_identity, resolve_outputs=True):

    if (stack_identity is not None):
        db_stack = self._get_stack(cnxt, stack_identity, show_deleted=True)
        stacks = [parser.Stack.load(cnxt, stack=db_stack)]
    else:
        stacks = parser.Stack.load_all(cnxt)
    def show(stack):
        if resolve_outputs:
            for res in stack._explicit_dependencies():
                node_data = res.node_data(for_outputs=True)
                stk_defn.update_resource_data(stack.defn, res.name, node_data)
                if (stack.convergence and (res.id is not None)):
                    res.store_attributes()
        return api.format_stack(stack, resolve_outputs=resolve_outputs)
    return [show(stack) for stack in stacks]
