1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2026-06-11 02:25:36 +00: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:
Abhijit Menon-Sen 2016-08-25 22:32:45 +05:30
parent 2b3a22fdba
commit 3ab9dddb3a

View file

@ -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