f1961c734e

TemplateResource is unique in that it can return a custom reference ID defined as an output in the nested template. This was being fetched by the StackResource.get_output() method, which also has the effect of retrieving *all* of the outputs of the nested stack and caching them in memory in case something else were to reference any of them. Unfortunately when calculating the resource data for a stack (which we must always do when e.g. showing the outputs), we always include the reference IDs of all resources, regardless of whether they are referenced by get_resource in the data we are looking to populate. (In fact, we have no way from the Template API to distinguish where get_resource is used on a particular resource, only where there are dependencies on it.) This is no problem under the assumption that getting the reference ID is quick, but that assumption does not hold for TemplateResource. The show_output RPC call only retrieves a single output (as opposed to show_stack, used in StackResource.get_output(), which calculates all of them). Fall back to that call in TemplateResource.get_reference_id() if the outputs are not already cached to avoid unnecessary overhead in the common case. Attribute values are now always fetched before the reference ID, so that we won't end up making two RPC calls in the case where we also need to read other outputs. Change-Id: I66da13c0bb024749de4ae3f0c4b06ebb485cee37 Closes-Bug: #1719333
Team and repository tags
Heat
Heat is a service to orchestrate multiple composite cloud applications using templates, through both an OpenStack-native REST API and a CloudFormation-compatible Query API.
Why heat? It makes the clouds rise and keeps them there.
Getting Started
If you'd like to run from the master branch, you can clone the git repo:
git clone https://git.openstack.org/openstack/heat
- Wiki: http://wiki.openstack.org/Heat
- Developer docs: http://docs.openstack.org/heat/latest
- Template samples: https://git.openstack.org/cgit/openstack/heat-templates
- Agents: https://git.openstack.org/cgit/openstack/heat-agents
Python client
https://git.openstack.org/cgit/openstack/python-heatclient
References
- http://docs.amazonwebservices.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html
- http://docs.amazonwebservices.com/AWSCloudFormation/latest/UserGuide/create-stack.html
- http://docs.amazonwebservices.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html
- http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=tosca
We have integration with
- https://git.openstack.org/cgit/openstack/python-novaclient (instance)
- https://git.openstack.org/cgit/openstack/python-keystoneclient (auth)
- https://git.openstack.org/cgit/openstack/python-swiftclient (s3)
- https://git.openstack.org/cgit/openstack/python-neutronclient (networking)
- https://git.openstack.org/cgit/openstack/python-ceilometerclient (metering)
- https://git.openstack.org/cgit/openstack/python-aodhclient (alarming service)
- https://git.openstack.org/cgit/openstack/python-cinderclient (storage service)
- https://git.openstack.org/cgit/openstack/python-glanceclient (image service)
- https://git.openstack.org/cgit/openstack/python-troveclient (database as a Service)
- https://git.openstack.org/cgit/openstack/python-saharaclient (hadoop cluster)
- https://git.openstack.org/cgit/openstack/python-barbicanclient (key management service)
- https://git.openstack.org/cgit/openstack/python-designateclient (DNS service)
- https://git.openstack.org/cgit/openstack/python-magnumclient (container service)
- https://git.openstack.org/cgit/openstack/python-manilaclient (shared file system service)
- https://git.openstack.org/cgit/openstack/python-mistralclient (workflow service)
- https://git.openstack.org/cgit/openstack/python-zaqarclient (messaging service)
- https://git.openstack.org/cgit/openstack/python-monascaclient (monitoring service)
- https://git.openstack.org/cgit/openstack/python-senlinclient (clustering service)
Description
Languages
Python
99.5%
Shell
0.5%