mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-24 05:40:23 -07:00
Make the extract filter return Undefined on KeyError
groups['x']|map('extract', hostvars, 'somevar') would break if any host didn't have 'somevar' set. With this change, it will return Undefined instead. This change permits |map('extract', …)|map('default', 42) to set a default value in such cases.
This commit is contained in:
parent
2b3a22fdba
commit
3ab9dddb3a
1 changed files with 4 additions and 1 deletions
|
@ -363,7 +363,10 @@ def extract(item, container, morekeys=None):
|
|||
if not isinstance(morekeys, list):
|
||||
morekeys = [morekeys]
|
||||
|
||||
value = reduce(lambda d, k: d[k], morekeys, value)
|
||||
try:
|
||||
value = reduce(lambda d, k: d[k], morekeys, value)
|
||||
except KeyError:
|
||||
value = Undefined()
|
||||
|
||||
return value
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue