mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
* virtualbox: Fix nested data parsing
- Skip parsing values with keys that have both a value and nested data.
- Skip parsing values that are nested more than two keys deep.
* Update changelogs/fragments/5348-fix-vbox-deeply-nested-hostvars.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit b0bb994c3e
)
Co-authored-by: Paul Sanchez <124954+basicdays@users.noreply.github.com>
This commit is contained in:
parent
d6cd90838f
commit
607f3d83a0
2 changed files with 7 additions and 2 deletions
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- virtualbox inventory plugin - skip parsing values with keys that have both a value and nested data. Skip parsing values that are nested more than two keys deep (https://github.com/ansible-collections/community.general/issues/5332, https://github.com/ansible-collections/community.general/pull/5348).
|
|
@ -186,10 +186,13 @@ class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):
|
||||||
else:
|
else:
|
||||||
# found vars, accumulate in hostvars for clean inventory set
|
# found vars, accumulate in hostvars for clean inventory set
|
||||||
pref_k = 'vbox_' + k.strip().replace(' ', '_')
|
pref_k = 'vbox_' + k.strip().replace(' ', '_')
|
||||||
if k.startswith(' '):
|
leading_spaces = len(k) - len(k.lstrip(' '))
|
||||||
if prevkey not in hostvars[current_host]:
|
if 0 < leading_spaces <= 2:
|
||||||
|
if prevkey not in hostvars[current_host] or not isinstance(hostvars[current_host][prevkey], dict):
|
||||||
hostvars[current_host][prevkey] = {}
|
hostvars[current_host][prevkey] = {}
|
||||||
hostvars[current_host][prevkey][pref_k] = v
|
hostvars[current_host][prevkey][pref_k] = v
|
||||||
|
elif leading_spaces > 2:
|
||||||
|
continue
|
||||||
else:
|
else:
|
||||||
if v != '':
|
if v != '':
|
||||||
hostvars[current_host][pref_k] = v
|
hostvars[current_host][pref_k] = v
|
||||||
|
|
Loading…
Add table
Reference in a new issue