mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
17ab546c48
* Add 2.0-2.3 facts api compat (ansible_facts(), get_all_facts()) These are intended to provide compatibilty for modules that use 'ansible.module_utils.facts.ansible_facts' and 'ansible.module_utils.facts.get_all_facts' from 2.0-2.3 facts API. Fixes #25686 Some related changes/fixes needed to provide the compat api: * rm ansible.constants import from module_utils.facts.compat Just use a hard coded default for gather_subset/gather_timeout instead of trying to load it from non existent config if the module params dont include it. * include 'external' collectors in compat ansible_facts() * Add facter/ohai back to the valid collector classes facter/ohai had gotten removed from the default_collectors class used as the default list for all_collector_classes by setup.py and compat.py That made gather_subset['facter'] fail.
278 lines
8.5 KiB
YAML
278 lines
8.5 KiB
YAML
---
|
|
|
|
- hosts: facthost7
|
|
tags: [ 'fact_negation' ]
|
|
connection: local
|
|
gather_subset: "!hardware"
|
|
gather_facts: no
|
|
tasks:
|
|
- name: setup with not hardware
|
|
setup:
|
|
gather_subset:
|
|
- "!hardware"
|
|
register: not_hardware_facts
|
|
|
|
- name: debug setup with not hardware
|
|
debug:
|
|
var: not_hardware_facts
|
|
|
|
- hosts: facthost0
|
|
tags: [ 'fact_min' ]
|
|
connection: local
|
|
gather_subset: "all"
|
|
gather_facts: yes
|
|
tasks:
|
|
- setup:
|
|
register: facts
|
|
- name: Test that retrieving all facts works
|
|
assert:
|
|
that:
|
|
- 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"'
|
|
- 'ansible_interfaces|default("UNDEF_NET") != "UNDEF_NET"'
|
|
- 'ansible_mounts|default("UNDEF_NET") != "UNDEF_HW"'
|
|
- 'ansible_virtualization_role|default("UNDEF_VIRT") != "UNDEF_VIRT"'
|
|
|
|
|
|
- hosts: facthost19
|
|
tags: [ 'fact_min' ]
|
|
connection: local
|
|
gather_facts: no
|
|
tasks:
|
|
- setup:
|
|
filter: "*env*"
|
|
register: facts_results
|
|
|
|
- name: Test that retrieving all facts filtered to env works
|
|
assert:
|
|
that:
|
|
- 'ansible_interfaces|default("UNDEF_NET") == "UNDEF_NET"'
|
|
- 'ansible_mounts|default("UNDEF_MOUNT") == "UNDEF_MOUNT"'
|
|
- 'ansible_virtualization_role|default("UNDEF_VIRT") == "UNDEF_VIRT"'
|
|
- 'ansible_env|default("UNDEF_ENV") != "UNDEF_ENV"'
|
|
|
|
- hosts: facthost13
|
|
tags: [ 'fact_min' ]
|
|
connection: local
|
|
gather_facts: no
|
|
tasks:
|
|
- setup:
|
|
filter: "ansible_user_id"
|
|
register: facts_results
|
|
|
|
- name: Test that retrieving all facts filtered to specific fact ansible_user_id works
|
|
assert:
|
|
that:
|
|
- 'ansible_user_id|default("UNDEF_USER") != "UNDEF_USER"'
|
|
- 'ansible_interfaces|default("UNDEF_NET") == "UNDEF_NET"'
|
|
- 'ansible_mounts|default("UNDEF_MOUNT") == "UNDEF_MOUNT"'
|
|
- 'ansible_virtualization_role|default("UNDEF_VIRT") == "UNDEF_VIRT"'
|
|
- 'ansible_env|default("UNDEF_ENV") == "UNDEF_ENV"'
|
|
|
|
- hosts: facthost11
|
|
tags: [ 'fact_min' ]
|
|
connection: local
|
|
gather_facts: no
|
|
tasks:
|
|
- setup:
|
|
filter: "*"
|
|
register: facts
|
|
|
|
- name: Test that retrieving all facts filtered to splat
|
|
assert:
|
|
that:
|
|
- 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"'
|
|
- 'ansible_interfaces|default("UNDEF_NET") != "UNDEF_NET"'
|
|
- 'ansible_mounts|default("UNDEF_NET") != "UNDEF_HW"'
|
|
- 'ansible_virtualization_role|default("UNDEF_VIRT") != "UNDEF_VIRT"'
|
|
|
|
- hosts: facthost12
|
|
tags: [ 'fact_min' ]
|
|
connection: local
|
|
gather_facts: no
|
|
tasks:
|
|
- setup:
|
|
filter: ""
|
|
register: facts
|
|
|
|
- name: Test that retrieving all facts filtered to empty filter_spec works
|
|
assert:
|
|
that:
|
|
- 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"'
|
|
- 'ansible_interfaces|default("UNDEF_NET") != "UNDEF_NET"'
|
|
- 'ansible_mounts|default("UNDEF_NET") != "UNDEF_HW"'
|
|
- 'ansible_virtualization_role|default("UNDEF_VIRT") != "UNDEF_VIRT"'
|
|
|
|
- hosts: facthost1
|
|
tags: [ 'fact_min' ]
|
|
connection: local
|
|
gather_subset: "!all"
|
|
gather_facts: yes
|
|
tasks:
|
|
- name: Test that only retrieving minimal facts work
|
|
assert:
|
|
that:
|
|
- 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"'
|
|
- 'ansible_interfaces|default("UNDEF_NET") == "UNDEF_NET"'
|
|
- 'ansible_mounts|default("UNDEF_HW") == "UNDEF_HW"'
|
|
- 'ansible_virtualization_role|default("UNDEF_VIRT") == "UNDEF_VIRT"'
|
|
|
|
- hosts: facthost2
|
|
tags: [ 'fact_network' ]
|
|
connection: local
|
|
gather_subset: "network"
|
|
gather_facts: yes
|
|
tasks:
|
|
- name: Test that retrieving network facts work
|
|
assert:
|
|
that:
|
|
- 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"'
|
|
- 'ansible_interfaces|default("UNDEF_NET") != "UNDEF_NET"'
|
|
- 'ansible_mounts|default("UNDEF_HW") == "UNDEF_HW"'
|
|
- 'ansible_virtualization_role|default("UNDEF_VIRT") == "UNDEF_VIRT"'
|
|
|
|
- hosts: facthost3
|
|
tags: [ 'fact_hardware' ]
|
|
connection: local
|
|
gather_subset: "hardware"
|
|
gather_facts: yes
|
|
tasks:
|
|
- name: Test that retrieving hardware facts work
|
|
assert:
|
|
that:
|
|
- 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"'
|
|
- 'ansible_interfaces|default("UNDEF_NET") == "UNDEF_NET"'
|
|
- 'ansible_mounts|default("UNDEF_HW") != "UNDEF_HW" or ansible_distribution == "MacOSX"'
|
|
- 'ansible_virtualization_role|default("UNDEF_VIRT") == "UNDEF_VIRT"'
|
|
|
|
- hosts: facthost4
|
|
tags: [ 'fact_virtual' ]
|
|
connection: local
|
|
gather_subset: "virtual"
|
|
gather_facts: yes
|
|
tasks:
|
|
- name: Test that retrieving virtualization facts work
|
|
assert:
|
|
that:
|
|
- 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"'
|
|
- 'ansible_interfaces|default("UNDEF_NET") == "UNDEF_NET"'
|
|
- 'ansible_mounts|default("UNDEF_HW") == "UNDEF_HW"'
|
|
- 'ansible_virtualization_role|default("UNDEF_VIRT") != "UNDEF_VIRT"'
|
|
|
|
- hosts: facthost5
|
|
tags: [ 'fact_comma_string' ]
|
|
connection: local
|
|
gather_subset: "virtual,network"
|
|
gather_facts: yes
|
|
tasks:
|
|
- name: Test that retrieving virtualization and network as a string works
|
|
assert:
|
|
that:
|
|
- 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"'
|
|
- 'ansible_interfaces|default("UNDEF_NET") != "UNDEF_NET"'
|
|
- 'ansible_mounts|default("UNDEF_HW") == "UNDEF_HW"'
|
|
- 'ansible_virtualization_role|default("UNDEF_VIRT") != "UNDEF_VIRT"'
|
|
|
|
- hosts: facthost6
|
|
tags: [ 'fact_yaml_list' ]
|
|
connection: local
|
|
gather_subset:
|
|
- virtual
|
|
- network
|
|
gather_facts: yes
|
|
tasks:
|
|
- name: Test that retrieving virtualization and network as a string works
|
|
assert:
|
|
that:
|
|
- 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"'
|
|
- 'ansible_interfaces|default("UNDEF_NET") != "UNDEF_NET"'
|
|
- 'ansible_mounts|default("UNDEF_HW") == "UNDEF_HW"'
|
|
- 'ansible_virtualization_role|default("UNDEF_VIRT") != "UNDEF_VIRT"'
|
|
|
|
|
|
- hosts: facthost7
|
|
tags: [ 'fact_negation' ]
|
|
connection: local
|
|
gather_subset: "!hardware"
|
|
gather_facts: yes
|
|
tasks:
|
|
- name: Test that negation of fact subsets work
|
|
assert:
|
|
that:
|
|
- 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"'
|
|
- 'ansible_interfaces|default("UNDEF_NET") != "UNDEF_NET"'
|
|
- 'ansible_mounts|default("UNDEF_HW") == "UNDEF_HW"'
|
|
- 'ansible_virtualization_role|default("UNDEF_VIRT") != "UNDEF_VIRT"'
|
|
|
|
- hosts: facthost8
|
|
tags: [ 'fact_mixed_negation_addition' ]
|
|
connection: local
|
|
gather_subset: "!hardware,network"
|
|
gather_facts: yes
|
|
tasks:
|
|
- name: Test that negation and additional subsets work together
|
|
assert:
|
|
that:
|
|
- 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"'
|
|
- 'ansible_interfaces|default("UNDEF_NET") != "UNDEF_NET"'
|
|
- 'ansible_mounts|default("UNDEF_HW") == "UNDEF_HW"'
|
|
- 'ansible_virtualization_role|default("UNDEF_VIRT") == "UNDEF_VIRT"'
|
|
|
|
- hosts: facthost9
|
|
tags: [ 'fact_local']
|
|
connection: local
|
|
gather_facts: no
|
|
tasks:
|
|
- name: Create fact directories
|
|
become: true
|
|
with_items:
|
|
- /etc/ansible/facts.d
|
|
- /tmp/custom_facts.d
|
|
file:
|
|
state: directory
|
|
path: "{{ item }}"
|
|
mode: '0777'
|
|
- name: Deploy local facts
|
|
with_items:
|
|
- path: /etc/ansible/facts.d/testfact.fact
|
|
content: '{ "fact_dir": "default" }'
|
|
- path: /tmp/custom_facts.d/testfact.fact
|
|
content: '{ "fact_dir": "custom" }'
|
|
copy:
|
|
dest: "{{ item.path }}"
|
|
content: "{{ item.content }}"
|
|
|
|
- hosts: facthost9
|
|
tags: [ 'fact_local']
|
|
connection: local
|
|
gather_facts: yes
|
|
tasks:
|
|
- name: Test reading facts from default fact_path
|
|
assert:
|
|
that:
|
|
- '"{{ ansible_local.testfact.fact_dir }}" == "default"'
|
|
|
|
- hosts: facthost9
|
|
tags: [ 'fact_local']
|
|
connection: local
|
|
gather_facts: yes
|
|
fact_path: /tmp/custom_facts.d
|
|
tasks:
|
|
- name: Test reading facts from custom fact_path
|
|
assert:
|
|
that:
|
|
- '"{{ ansible_local.testfact.fact_dir }}" == "custom"'
|
|
|
|
- hosts: facthost20
|
|
tags: [ 'fact_facter_ohai' ]
|
|
connection: local
|
|
gather_subset:
|
|
- facter
|
|
- ohai
|
|
gather_facts: yes
|
|
tasks:
|
|
- name: Test that retrieving facter and ohai doesnt fail
|
|
assert:
|
|
# not much to assert here, aside from not crashing, since test images dont have
|
|
# facter/ohai
|
|
that:
|
|
- 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"'
|