parent
1da47bfa8c
commit
7f0bf0a98a
3 changed files with 18 additions and 2 deletions
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
minor_changes:
|
||||||
|
- added config toggle for YAML duplicate dict key warnings
|
|
@ -1253,6 +1253,17 @@ DOCSITE_ROOT_URL:
|
||||||
ini:
|
ini:
|
||||||
- {key: docsite_root_url, section: defaults}
|
- {key: docsite_root_url, section: defaults}
|
||||||
version_added: "2.8"
|
version_added: "2.8"
|
||||||
|
DUPLICATE_DICT_KEY_WARNINGS:
|
||||||
|
name: Toggle warnings for duplicate dict keys in YAML
|
||||||
|
default: True
|
||||||
|
description:
|
||||||
|
- By default Ansible will issue a warning when a duplicate dict key is encountered in YAML.
|
||||||
|
- These warnings can be silenced by adjusting this setting to False.
|
||||||
|
env: [{name: ANSIBLE_DUPLICATE_DICT_KEY_WARNINGS}]
|
||||||
|
ini:
|
||||||
|
- {key: duplicate_dict_key_warnings, section: defaults}
|
||||||
|
type: boolean
|
||||||
|
version_added: "2.9"
|
||||||
ERROR_ON_MISSING_HANDLER:
|
ERROR_ON_MISSING_HANDLER:
|
||||||
name: Missing handler error
|
name: Missing handler error
|
||||||
default: True
|
default: True
|
||||||
|
|
|
@ -22,6 +22,7 @@ __metaclass__ = type
|
||||||
from yaml.constructor import SafeConstructor, ConstructorError
|
from yaml.constructor import SafeConstructor, ConstructorError
|
||||||
from yaml.nodes import MappingNode
|
from yaml.nodes import MappingNode
|
||||||
|
|
||||||
|
from ansible import constants as C
|
||||||
from ansible.module_utils._text import to_bytes
|
from ansible.module_utils._text import to_bytes
|
||||||
from ansible.parsing.yaml.objects import AnsibleMapping, AnsibleSequence, AnsibleUnicode
|
from ansible.parsing.yaml.objects import AnsibleMapping, AnsibleSequence, AnsibleUnicode
|
||||||
from ansible.parsing.yaml.objects import AnsibleVaultEncryptedUnicode
|
from ansible.parsing.yaml.objects import AnsibleVaultEncryptedUnicode
|
||||||
|
@ -70,8 +71,9 @@ class AnsibleConstructor(SafeConstructor):
|
||||||
"found unacceptable key (%s)" % exc, key_node.start_mark)
|
"found unacceptable key (%s)" % exc, key_node.start_mark)
|
||||||
|
|
||||||
if key in mapping:
|
if key in mapping:
|
||||||
display.warning(u'While constructing a mapping from {1}, line {2}, column {3}, found a duplicate dict key ({0}).'
|
if C.DUPLICATE_DICT_KEY_WARNINGS:
|
||||||
u' Using last defined value only.'.format(key, *mapping.ansible_pos))
|
display.warning(u'While constructing a mapping from {1}, line {2}, column {3}, found a duplicate dict key ({0}).'
|
||||||
|
u' Using last defined value only.'.format(key, *mapping.ansible_pos))
|
||||||
|
|
||||||
value = self.construct_object(value_node, deep=deep)
|
value = self.construct_object(value_node, deep=deep)
|
||||||
mapping[key] = value
|
mapping[key] = value
|
||||||
|
|
Loading…
Reference in a new issue