mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
parent
ff251a0dcc
commit
cb5f630f33
2 changed files with 22 additions and 6 deletions
|
@ -254,15 +254,17 @@ class Base:
|
||||||
raise AnsibleParserError("the field '%s' is required but was not set" % name)
|
raise AnsibleParserError("the field '%s' is required but was not set" % name)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# if the attribute contains a variable, template it now
|
# Run the post-validator if present. These methods are responsible for
|
||||||
value = templar.template(getattr(self, name))
|
# using the given templar to template the values, if required.
|
||||||
|
|
||||||
# run the post-validator if present
|
|
||||||
method = getattr(self, '_post_validate_%s' % name, None)
|
method = getattr(self, '_post_validate_%s' % name, None)
|
||||||
if method:
|
if method:
|
||||||
value = method(attribute, value, all_vars, templar._fail_on_undefined_errors)
|
value = method(attribute, getattr(self, name), templar)
|
||||||
else:
|
else:
|
||||||
# otherwise, just make sure the attribute is of the type it should be
|
# if the attribute contains a variable, template it now
|
||||||
|
value = templar.template(getattr(self, name))
|
||||||
|
|
||||||
|
# and make sure the attribute is of the type it should be
|
||||||
|
if value is not None:
|
||||||
if attribute.isa == 'string':
|
if attribute.isa == 'string':
|
||||||
value = unicode(value)
|
value = unicode(value)
|
||||||
elif attribute.isa == 'int':
|
elif attribute.isa == 'int':
|
||||||
|
|
|
@ -187,6 +187,20 @@ class Play(Base, Taggable, Become):
|
||||||
roles.append(Role.load(ri))
|
roles.append(Role.load(ri))
|
||||||
return roles
|
return roles
|
||||||
|
|
||||||
|
def _post_validate_vars(self, attr, value, templar):
|
||||||
|
'''
|
||||||
|
Override post validation of vars on the play, as we don't want to
|
||||||
|
template these too early.
|
||||||
|
'''
|
||||||
|
return value
|
||||||
|
|
||||||
|
def _post_validate_vars_files(self, attr, value, templar):
|
||||||
|
'''
|
||||||
|
Override post validation of vars_files on the play, as we don't want to
|
||||||
|
template these too early.
|
||||||
|
'''
|
||||||
|
return value
|
||||||
|
|
||||||
# FIXME: post_validation needs to ensure that become/su/sudo have only 1 set
|
# FIXME: post_validation needs to ensure that become/su/sudo have only 1 set
|
||||||
|
|
||||||
def _compile_roles(self):
|
def _compile_roles(self):
|
||||||
|
|
Loading…
Reference in a new issue