summaryrefslogtreecommitdiffstats
path: root/lib/ansible/playbook/base.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:55:41 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:55:41 +0000
commit634758cfc77dff535c5e9e17cc99c6ba19e965b1 (patch)
treebb1c1a6bbff7abf9ed2d0e3b888480e70f0f109a /lib/ansible/playbook/base.py
parentAdding upstream version 2.14.13. (diff)
downloadansible-core-634758cfc77dff535c5e9e17cc99c6ba19e965b1.tar.xz
ansible-core-634758cfc77dff535c5e9e17cc99c6ba19e965b1.zip
Adding upstream version 2.16.5.upstream/2.16.5
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'lib/ansible/playbook/base.py')
-rw-r--r--lib/ansible/playbook/base.py17
1 files changed, 13 insertions, 4 deletions
diff --git a/lib/ansible/playbook/base.py b/lib/ansible/playbook/base.py
index c772df1..81ce502 100644
--- a/lib/ansible/playbook/base.py
+++ b/lib/ansible/playbook/base.py
@@ -19,7 +19,7 @@ from ansible import context
from ansible.errors import AnsibleError, AnsibleParserError, AnsibleUndefinedVariable, AnsibleAssertionError
from ansible.module_utils.six import string_types
from ansible.module_utils.parsing.convert_bool import boolean
-from ansible.module_utils._text import to_text, to_native
+from ansible.module_utils.common.text.converters import to_text, to_native
from ansible.parsing.dataloader import DataLoader
from ansible.playbook.attribute import Attribute, FieldAttribute, ConnectionFieldAttribute, NonInheritableFieldAttribute
from ansible.plugins.loader import module_loader, action_loader
@@ -486,6 +486,8 @@ class FieldAttributeBase:
if not isinstance(value, attribute.class_type):
raise TypeError("%s is not a valid %s (got a %s instead)" % (name, attribute.class_type, type(value)))
value.post_validate(templar=templar)
+ else:
+ raise AnsibleAssertionError(f"Unknown value for attribute.isa: {attribute.isa}")
return value
def set_to_context(self, name):
@@ -588,6 +590,13 @@ class FieldAttributeBase:
_validate_variable_keys(ds)
return combine_vars(self.vars, ds)
elif isinstance(ds, list):
+ display.deprecated(
+ (
+ 'Specifying a list of dictionaries for vars is deprecated in favor of '
+ 'specifying a dictionary.'
+ ),
+ version='2.18'
+ )
all_vars = self.vars
for item in ds:
if not isinstance(item, dict):
@@ -600,7 +609,7 @@ class FieldAttributeBase:
else:
raise ValueError
except ValueError as e:
- raise AnsibleParserError("Vars in a %s must be specified as a dictionary, or a list of dictionaries" % self.__class__.__name__,
+ raise AnsibleParserError("Vars in a %s must be specified as a dictionary" % self.__class__.__name__,
obj=ds, orig_exc=e)
except TypeError as e:
raise AnsibleParserError("Invalid variable name in vars specified for %s: %s" % (self.__class__.__name__, e), obj=ds, orig_exc=e)
@@ -628,7 +637,7 @@ class FieldAttributeBase:
else:
combined = value + new_value
- return [i for i, _ in itertools.groupby(combined) if i is not None]
+ return [i for i, dummy in itertools.groupby(combined) if i is not None]
def dump_attrs(self):
'''
@@ -722,7 +731,7 @@ class Base(FieldAttributeBase):
# flags and misc. settings
environment = FieldAttribute(isa='list', extend=True, prepend=True)
- no_log = FieldAttribute(isa='bool')
+ no_log = FieldAttribute(isa='bool', default=C.DEFAULT_NO_LOG)
run_once = FieldAttribute(isa='bool')
ignore_errors = FieldAttribute(isa='bool')
ignore_unreachable = FieldAttribute(isa='bool')