If the type of an argument is not set, ansible defaults to treating it
as a string. As such it gets run through a validator that converts the
value to a string via str().
In the case of 'value' being null, or perhaps a dict or list that
contained null, the conversion via str() would cause the python native
None to be passed to this module, which when parsed through
yaml.safe_load() in parse_value(), would return the string 'None'.
To fix this, we set the type of 'value' to a noop validator, as the type
may vary and we don't want ansible to perform any conversion.
If the type of an argument is not set, ansible defaults to treating it as a string. As such it gets run through a validator that converts the value to a string via str().
In the case of 'value' being
null
, or perhaps a dict or list that containednull
, the conversion via str() would cause the python nativeNone
to be passed to this module, which when parsed through yaml.safe_load() in parse_value(), would return the string'None'
.To fix this, we set the type of 'value' to a noop validator, as the type may vary and we don't want ansible to perform any conversion.