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
pull/41741/head
Brian Coca 6 years ago committed by GitHub
parent e91cee1a31
commit 05a49d6eb6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -42,6 +42,7 @@ INTERNAL_VARS = frozenset(['ansible_diff_mode',
'ansible_playbook_python',
'ansible_run_tags',
'ansible_skip_tags',
'ansible_verbosity',
'ansible_version',
'inventory_dir',
'inventory_file',

@ -59,6 +59,7 @@ all: # keys must be unique, i.e. only one 'hosts' per group
'''
import os
from collections import MutableMapping
from ansible.errors import AnsibleParserError
@ -112,10 +113,11 @@ class InventoryModule(BaseFileInventoryPlugin):
def _parse_group(self, group, group_data):
if isinstance(group_data, MutableMapping):
if isinstance(group_data, (MutableMapping, type(None))):
self.inventory.add_group(group)
if group_data is not None:
# make sure they are dicts
for section in ['vars', 'children', 'hosts']:
if section in group_data:
@ -123,7 +125,7 @@ class InventoryModule(BaseFileInventoryPlugin):
if isinstance(group_data[section], string_types):
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.' %
(section, group, type(group_data[section])))

Loading…
Cancel
Save