mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-02 06:30:19 -07:00
Starting to add additional unit tests for VariableManager
Required some rewiring in inventory code to make sure we're using the DataLoader class for some data file operations, which makes mocking them much easier. Also identified two corner cases not currently handled by the code, related to inventory variable sources and which one "wins". Also noticed we weren't properly merging variables from multiple group/host_var file locations (inventory directory vs. playbook directory locations) so fixed as well.
This commit is contained in:
parent
87f75a50ad
commit
ff9f5d7dc8
13 changed files with 233 additions and 54 deletions
|
@ -29,7 +29,6 @@ from ansible.inventory.host import Host
|
|||
from ansible.inventory.group import Group
|
||||
from ansible.utils.vars import combine_vars
|
||||
|
||||
from ansible.utils.path import is_executable
|
||||
from ansible.inventory.ini import InventoryParser as InventoryINIParser
|
||||
from ansible.inventory.script import InventoryScript
|
||||
|
||||
|
@ -54,7 +53,7 @@ def get_file_parser(hostsfile, loader):
|
|||
except:
|
||||
pass
|
||||
|
||||
if is_executable(hostsfile):
|
||||
if loader.is_executable(hostsfile):
|
||||
try:
|
||||
parser = InventoryScript(loader=loader, filename=hostsfile)
|
||||
processed = True
|
||||
|
@ -65,10 +64,10 @@ def get_file_parser(hostsfile, loader):
|
|||
|
||||
if not processed:
|
||||
try:
|
||||
parser = InventoryINIParser(filename=hostsfile)
|
||||
parser = InventoryINIParser(loader=loader, filename=hostsfile)
|
||||
processed = True
|
||||
except Exception as e:
|
||||
if shebang_present and not is_executable(hostsfile):
|
||||
if shebang_present and not loader.is_executable(hostsfile):
|
||||
myerr.append("The file %s looks like it should be an executable inventory script, but is not marked executable. " % hostsfile + \
|
||||
"Perhaps you want to correct this with `chmod +x %s`?" % hostsfile)
|
||||
else:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue