1df7d95cec
* Make the module_utils path configurable * Add a config value to define the path site module_utils files * Handle module_utils that do not have source as an error * Make an integration test for module_utils envvar working * Add documentation for the ANSIBLE_MODULE_UTILS config option/envvar * Add it to the sample ansible.cfg * Add it to intro_configuration. * Also modify intro_configuration to place envvars on equal footing with the config options (will need to document the envvar names in the future) * Also add the ANSIBLE_LIBRARY use case from https://github.com/ansible/ansible/issues/15432 so we can close out that bug.
51 lines
1.8 KiB
YAML
51 lines
1.8 KiB
YAML
- hosts: localhost
|
|
gather_facts: no
|
|
tasks:
|
|
- name: Use a specially crafted module to see if things were imported correctly
|
|
test:
|
|
register: result
|
|
|
|
- name: Check that these are all loaded from playbook dir's module_utils
|
|
assert:
|
|
that:
|
|
- 'result["abcdefgh"] == "abcdefgh"'
|
|
- 'result["bar0"] == "bar0"'
|
|
- 'result["bar1"] == "bar1"'
|
|
- 'result["bar2"] == "bar2"'
|
|
- 'result["baz1"] == "baz1"'
|
|
- 'result["baz2"] == "baz2"'
|
|
- 'result["foo0"] == "foo0"'
|
|
- 'result["foo1"] == "foo1"'
|
|
- 'result["foo2"] == "foo2"'
|
|
- 'result["qux1"] == "qux1"'
|
|
- 'result["qux2"] == ["qux2:quux", "qux2:quuz"]'
|
|
- 'result["spam1"] == "spam1"'
|
|
- 'result["spam2"] == "spam2"'
|
|
- 'result["spam3"] == "spam3"'
|
|
- 'result["spam4"] == "spam4"'
|
|
- 'result["spam5"] == ["spam5:bacon", "spam5:eggs"]'
|
|
- 'result["spam6"] == ["spam6:bacon", "spam6:eggs"]'
|
|
- 'result["spam7"] == ["spam7:bacon", "spam7:eggs"]'
|
|
- 'result["spam8"] == ["spam8:bacon", "spam8:eggs"]'
|
|
|
|
# Test that overriding something in module_utils with something in the local library works
|
|
- name: Test that playbook dir's module_utils overrides facts.py
|
|
test_override:
|
|
register: result
|
|
|
|
- name: Make sure the we used the local facts.py, not the one shipped with ansible
|
|
assert:
|
|
that:
|
|
- 'result["data"] == "overridden facts.py"'
|
|
|
|
- name: Test that importing something from the module_utils in the env_vars works
|
|
test_env_override:
|
|
register: result
|
|
|
|
- name: Make sure we used the module_utils from the env_var for these
|
|
assert:
|
|
that:
|
|
# Override of shipped module_utils
|
|
- 'result["json_utils"] == "overridden json_utils"'
|
|
# Only i nthe env vars directory
|
|
- 'result["mork"] == "mork"'
|