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]
|
||||
elif isinstance(variable, dict):
|
||||
d = {}
|
||||
for (k, v) in variable.iteritems():
|
||||
d[k] = self.template(v, convert_bare=convert_bare, preserve_trailing_newlines=preserve_trailing_newlines, fail_on_undefined=fail_on_undefined, overrides=overrides)
|
||||
# we don't use iteritems() here to avoid problems if the underlying dict
|
||||
# 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
|
||||
else:
|
||||
return variable
|
||||
|
|
Loading…
Reference in a new issue