heat/heat
Zane Bitter 3c13cb82a6 Cache dep_attrs for all resources in definitions
When the dep_attrs function was written, it was used only in convergence
after checking a single resource. However, now we also use it to generate
data for the ResourceProxy objects, which is often done for all resources
simultaneously. That means doing O(n^2) dep_attrs() calls, which can really
slow things down when there is a large number of resources with complex
properties (or metadata).

This change adds an all_dep_attrs() call, which runs as fast as dep_attrs()
on everything except get_attr functions and their arguments, but only needs
to be called once instead of once per resource. (The get_attr function can
in future override the default implementation of all_dep_attrs() to be as
efficient as dep_attrs() as well.) The resulting data is cached in the
ResourceDefinition or OutputDefinition so that subsequent calls to their
get_attr() methods with different (or the same) resource names will use the
existing data.

Change-Id: If95f4c04b841519ce3d7492211f2696588c0ed48
Partially-Implements: blueprint stack-definition
Closes-Bug: #1684272
2017-07-21 10:44:51 -04:00
..
api Remove log translations 2017-03-25 17:11:50 +08:00
cloudinit Validate that python3 is ready for loguserdata 2016-08-26 11:49:30 +00:00
cmd Enable mutable config in Heat 2017-05-17 05:25:56 +00:00
common Merge "Make standalone heat work with keystone v3" 2017-07-21 12:04:03 +00:00
db Store resource attributes in the DB 2017-06-21 20:18:46 -04:00
engine Cache dep_attrs for all resources in definitions 2017-07-21 10:44:51 -04:00
hacking Restrict use of iteritems, iterkeys and itervalues 2016-03-23 10:05:54 +00:00
httpd Add httpd documentation and sample configs 2017-07-07 11:00:06 +05:30
locale Imported Translations from Zanata 2017-07-03 10:32:00 +00:00
objects Store resource attributes in the DB 2017-06-21 20:18:46 -04:00
rpc Merge "Use exception_filter in RPC client" 2017-03-29 13:46:53 +00:00
scaling Remove log translations 2017-03-25 17:11:50 +08:00
tests Cache dep_attrs for all resources in definitions 2017-07-21 10:44:51 -04:00
__init__.py Make import of oslo libraries namespaceless 2015-02-18 22:54:10 +01:00
version.py