Lightweight Stack loading for convergence

Include the URL of your launchpad blueprint:

Problem description

When we load the resources for a stack from the database, we load all of them at once. We also assume that resource names are unique within a stack (i.e. there is only one version of each resource). In convergence there will be multiple versions of each resource coexisting in the same stack, and we’ll want to load only the one we’re going to perform operations on at any given time.

Proposed change

Allow the stack to provide cached values for all of the get_resource and get_attr references in the template when they are resolved. Don’t load the whole list of resources when this cached data is available.


Continue to load every resource from the database whenever we need resource ID or attribute data.



Primary assignee:



Target Milestone for completion:


Work Items

  • Substitute reading from a cache for loading resources when resolving template functions


The cached values will be obtained by the code for