9687879840
* Replace InventoryFileCacheModule with a better developer-interface Use new interface for inventory plugins with backwards compatibility Auto-update the backing cache-plugin if the cache has changed after parsing the inventory plugin * Update CacheModules to use the config system and add a deprecation warning if they are being imported directly rather than using cache_loader * Fix foreman inventory caching * Add tests * Add integration test to check that fact caching works normally with cache plugins using ansible.constants and inventory caching provides a helpful error for non-compatible cache plugins * Add some developer documentation for inventory and cache plugins * Add user documentation for inventory caching * Add deprecation docs * Apply suggestions from docs review * Add changelog
31 lines
919 B
YAML
31 lines
919 B
YAML
---
|
|
- hosts: localhost
|
|
vars:
|
|
foreman_stub_host: "{{ lookup('env', 'FOREMAN_HOST') }}"
|
|
foreman_stub_port: "{{ lookup('env', 'FOREMAN_PORT') }}"
|
|
foreman_stub_api_path: /api/v2
|
|
cached_hosts_key: "http://{{ foreman_stub_host }}:{{ foreman_stub_port }}{{ foreman_stub_api_path }}/hosts"
|
|
tasks:
|
|
- name: verify a cache file was created
|
|
find:
|
|
path:
|
|
- ./foreman_cache
|
|
register: matching_files
|
|
|
|
- assert:
|
|
that:
|
|
- matching_files.matched == 1
|
|
- name: read the cached inventory
|
|
set_fact:
|
|
contents: "{{ lookup('file', matching_files.files.0.path) }}"
|
|
|
|
- name: extract all the host names
|
|
set_fact:
|
|
cached_hosts: "{{ contents[cached_hosts_key] | json_query('[*].name') }}"
|
|
|
|
- assert:
|
|
that:
|
|
"'{{ item }}' in cached_hosts"
|
|
loop:
|
|
- "v6.example-780.com"
|
|
- "c4.j1.y5.example-487.com"
|