Reduce frequency of logging environment resources
Currently we log all template resources every time any API call happens which indirectly creates an Environment object, which results in a lot of duplicate bloat in the heat logs (not even at debug level..) So, instead log all environment resources (e.g those from resource plugins and the global environment) only when we start the service, and log user-provided template resources only when we do the template validation on create/update, for only the root stack, because we pass a derived subset environment down to all children. We also switch to using the string representation of the ResourceInfo objects, as this contains a bit more useful info than the current log format. Change-Id: I20007c1ad6bf8b1479c1d60a5c392b8b9e1c06c4 Closes-Bug: #1499330
This commit is contained in:
parent
ddf5f13353
commit
5d6234ecf6
|
@ -262,10 +262,6 @@ class ResourceRegistry(object):
|
|||
'now': str(info.value)}
|
||||
LOG.warn(_LW('Changing %(path)s from %(was)s to %(now)s'),
|
||||
details)
|
||||
else:
|
||||
LOG.info(_LI('Registering %(path)s -> %(value)s'), {
|
||||
'path': descriptive_path,
|
||||
'value': str(info.value)})
|
||||
|
||||
if isinstance(info, ClassResourceInfo):
|
||||
if info.value.support_status.status != support.SUPPORTED:
|
||||
|
@ -276,6 +272,15 @@ class ResourceRegistry(object):
|
|||
info.user_resource = (self.global_registry is not None)
|
||||
registry[name] = info
|
||||
|
||||
def log_resource_info(self, show_all=False, prefix=None):
|
||||
registry = self._registry
|
||||
for name in registry:
|
||||
if show_all or isinstance(registry[name], TemplateResourceInfo):
|
||||
msg = (_('%(p)s Registered: %(t)s') %
|
||||
{'p': prefix or '',
|
||||
't': six.text_type(registry[name])})
|
||||
LOG.info(msg)
|
||||
|
||||
def remove_item(self, info):
|
||||
if not isinstance(info, TemplateResourceInfo):
|
||||
return
|
||||
|
|
|
@ -60,6 +60,7 @@ def initialise():
|
|||
global_env = environment.Environment({}, user_env=False)
|
||||
_load_global_environment(global_env)
|
||||
_environment = global_env
|
||||
global_env.registry.log_resource_info(show_all=True)
|
||||
|
||||
|
||||
def _load_global_environment(env):
|
||||
|
|
|
@ -616,6 +616,9 @@ class EngineService(service.Service):
|
|||
|
||||
self._validate_deferred_auth_context(cnxt, stack)
|
||||
stack.validate()
|
||||
# For the root stack print a summary of the TemplateResources loaded
|
||||
if nested_depth == 0:
|
||||
env.registry.log_resource_info(prefix=stack_name)
|
||||
return stack
|
||||
|
||||
@context.request_context
|
||||
|
|
Loading…
Reference in New Issue