heat/heat/engine/cfn
Zane Bitter adcb72b17b Supply outputs for reference IDs in StackResources
Previously, in 1fff951639, we added outputs
to the generated templates of various nested stack resources that
referenced any attributes required to calculate the parent resource's
attributes. That was necessary because attribute values are not cached
unless they are referenced somewhere. It isn't necessary for reference IDs
(i.e. the results of get_resource) because those are always available.
However, providing reference IDs as outputs as well will allow us to get
all attributes of the parent resource from outputs of the nested stack.

Unlike ResourceGroup/Chain, in InstanceGroup and AutoscalingGroup the order
and content of the member in list-type outputs cannot be determined at
template generation time (failed resources are excluded, and the sort order
depends on creation time). Therefore, always use dicts instead of lists as
outputs, both for the new reference ID outputs in AutoscalingGroup and
existing attribute outputs. For ResourceGroup/Chain, create both dicts and
lists as appropriate, so that each attribute value can be obtained directly
from an output.

Change-Id: I3139246a5acb17df9018e7c7a2cf88f740b3f8be
Partial-Bug: #1731349
2018-01-19 15:08:10 -05:00
..
__init__.py Move built-in functions to separate modules 2014-02-19 00:02:01 -05:00
functions.py Supply outputs for reference IDs in StackResources 2018-01-19 15:08:10 -05:00
parameters.py Move CFN pseudo functions out of Parameters base class 2017-01-27 15:24:44 -06:00
template.py Strip disabled resources from depends_on in add_resource() 2017-07-21 10:55:23 -04:00