handle groups correctly when they are 'null' (#41698)
* handle groups correctly when they are 'null' - even if defined as mapping but having no keys, objects shoudl still be processed correctly - also add ansilbe_verbosity to vars not to display in ansible-inventory fixes #41692
This commit is contained in:
parent
e91cee1a31
commit
05a49d6eb6
2 changed files with 27 additions and 24 deletions
|
@ -42,6 +42,7 @@ INTERNAL_VARS = frozenset(['ansible_diff_mode',
|
||||||
'ansible_playbook_python',
|
'ansible_playbook_python',
|
||||||
'ansible_run_tags',
|
'ansible_run_tags',
|
||||||
'ansible_skip_tags',
|
'ansible_skip_tags',
|
||||||
|
'ansible_verbosity',
|
||||||
'ansible_version',
|
'ansible_version',
|
||||||
'inventory_dir',
|
'inventory_dir',
|
||||||
'inventory_file',
|
'inventory_file',
|
||||||
|
|
|
@ -59,6 +59,7 @@ all: # keys must be unique, i.e. only one 'hosts' per group
|
||||||
'''
|
'''
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from collections import MutableMapping
|
from collections import MutableMapping
|
||||||
|
|
||||||
from ansible.errors import AnsibleParserError
|
from ansible.errors import AnsibleParserError
|
||||||
|
@ -112,10 +113,11 @@ class InventoryModule(BaseFileInventoryPlugin):
|
||||||
|
|
||||||
def _parse_group(self, group, group_data):
|
def _parse_group(self, group, group_data):
|
||||||
|
|
||||||
if isinstance(group_data, MutableMapping):
|
if isinstance(group_data, (MutableMapping, type(None))):
|
||||||
|
|
||||||
self.inventory.add_group(group)
|
self.inventory.add_group(group)
|
||||||
|
|
||||||
|
if group_data is not None:
|
||||||
# make sure they are dicts
|
# make sure they are dicts
|
||||||
for section in ['vars', 'children', 'hosts']:
|
for section in ['vars', 'children', 'hosts']:
|
||||||
if section in group_data:
|
if section in group_data:
|
||||||
|
@ -123,7 +125,7 @@ class InventoryModule(BaseFileInventoryPlugin):
|
||||||
if isinstance(group_data[section], string_types):
|
if isinstance(group_data[section], string_types):
|
||||||
group_data[section] = {group_data[section]: None}
|
group_data[section] = {group_data[section]: None}
|
||||||
|
|
||||||
if not isinstance(group_data[section], MutableMapping):
|
if not isinstance(group_data[section], (MutableMapping, type(None))):
|
||||||
raise AnsibleParserError('Invalid "%s" entry for "%s" group, requires a dictionary, found "%s" instead.' %
|
raise AnsibleParserError('Invalid "%s" entry for "%s" group, requires a dictionary, found "%s" instead.' %
|
||||||
(section, group, type(group_data[section])))
|
(section, group, type(group_data[section])))
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue