Commit 3e1a774b by James Cammarata

Don't use iteritems() in templar to avoid (hostvars) dict size change errors

parent 974b69d2
...@@ -251,8 +251,10 @@ class Templar: ...@@ -251,8 +251,10 @@ class Templar:
return [self.template(v, convert_bare=convert_bare, preserve_trailing_newlines=preserve_trailing_newlines, fail_on_undefined=fail_on_undefined, overrides=overrides) for v in variable] return [self.template(v, convert_bare=convert_bare, preserve_trailing_newlines=preserve_trailing_newlines, fail_on_undefined=fail_on_undefined, overrides=overrides) for v in variable]
elif isinstance(variable, dict): elif isinstance(variable, dict):
d = {} d = {}
for (k, v) in variable.iteritems(): # we don't use iteritems() here to avoid problems if the underlying dict
d[k] = self.template(v, convert_bare=convert_bare, preserve_trailing_newlines=preserve_trailing_newlines, fail_on_undefined=fail_on_undefined, overrides=overrides) # changes sizes due to the templating, which can happen with hostvars
for k in variable.keys():
d[k] = self.template(variable[k], convert_bare=convert_bare, preserve_trailing_newlines=preserve_trailing_newlines, fail_on_undefined=fail_on_undefined, overrides=overrides)
return d return d
else: else:
return variable return variable
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment