diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:55:41 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:55:41 +0000 |
commit | 634758cfc77dff535c5e9e17cc99c6ba19e965b1 (patch) | |
tree | bb1c1a6bbff7abf9ed2d0e3b888480e70f0f109a /lib/ansible/playbook/base.py | |
parent | Adding upstream version 2.14.13. (diff) | |
download | ansible-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.py | 17 |
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') |