Don't use iteritems() in templar to avoid (hostvars) dict size change errors
This commit is contained in:
parent
974b69d236
commit
3e1a774ba5
1 changed files with 4 additions and 2 deletions
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue