Don't perform string to bool conversion in set_fact when jinja2 native types is enabled (#43425)

* Don't perform string to bool conversion in set_fact when jinja2 native types is enabled. Fixes #42599

* Add tests for boolean conversions in set_fact
This commit is contained in:
Matt Martz
2018-07-30 15:44:38 -05:00
committed by GitHub
parent 43c508b3c3
commit 77d2008150
4 changed files with 47 additions and 1 deletions

View File

@@ -23,6 +23,8 @@ from ansible.module_utils.parsing.convert_bool import boolean
from ansible.plugins.action import ActionBase
from ansible.utils.vars import isidentifier
import ansible.constants as C
class ActionModule(ActionBase):
@@ -49,7 +51,7 @@ class ActionModule(ActionBase):
"letters, numbers and underscores." % k)
return result
if isinstance(v, string_types) and v.lower() in ('true', 'false', 'yes', 'no'):
if not C.DEFAULT_JINJA2_NATIVE and isinstance(v, string_types) and v.lower() in ('true', 'false', 'yes', 'no'):
v = boolean(v, strict=False)
facts[k] = v