diff options
Diffstat (limited to 'ansible_collections/community/dns/tests/integration')
13 files changed, 229 insertions, 22 deletions
diff --git a/ansible_collections/community/dns/tests/integration/replace-requirements.sh b/ansible_collections/community/dns/tests/integration/replace-requirements.sh new file mode 100755 index 000000000..c3a52f5d1 --- /dev/null +++ b/ansible_collections/community/dns/tests/integration/replace-requirements.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +# Copyright (c) Ansible Project +# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +# SPDX-License-Identifier: GPL-3.0-or-later + +DIRECTORY="$(dirname "$0")" + +if [ -e "${DIRECTORY}/$1" ]; then + cp "${DIRECTORY}/$1" "${DIRECTORY}/requirements.txt" +fi diff --git a/ansible_collections/community/dns/tests/integration/targets/wait_for_txt/runme.yml b/ansible_collections/community/dns/tests/integration/requirements-stable-2.10.txt index bcecb88e9..af90be668 100644 --- a/ansible_collections/community/dns/tests/integration/targets/wait_for_txt/runme.yml +++ b/ansible_collections/community/dns/tests/integration/requirements-stable-2.10.txt @@ -1,8 +1,7 @@ ---- # Copyright (c) Ansible Project # GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) # SPDX-License-Identifier: GPL-3.0-or-later -- hosts: localhost - roles: - - { role: wait_for_txt } +ipaddress ; python_version < '3.3' + +dnspython < 2.4.0 diff --git a/ansible_collections/community/dns/tests/integration/requirements-stable-2.9.txt b/ansible_collections/community/dns/tests/integration/requirements-stable-2.9.txt new file mode 100644 index 000000000..af90be668 --- /dev/null +++ b/ansible_collections/community/dns/tests/integration/requirements-stable-2.9.txt @@ -0,0 +1,7 @@ +# Copyright (c) Ansible Project +# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +# SPDX-License-Identifier: GPL-3.0-or-later + +ipaddress ; python_version < '3.3' + +dnspython < 2.4.0 diff --git a/ansible_collections/community/dns/tests/integration/requirements.txt b/ansible_collections/community/dns/tests/integration/requirements.txt new file mode 100644 index 000000000..5e4bca63f --- /dev/null +++ b/ansible_collections/community/dns/tests/integration/requirements.txt @@ -0,0 +1,7 @@ +# Copyright (c) Ansible Project +# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +# SPDX-License-Identifier: GPL-3.0-or-later + +ipaddress ; python_version < '3.3' + +dnspython diff --git a/ansible_collections/community/dns/tests/integration/targets/lookup_lookup/aliases b/ansible_collections/community/dns/tests/integration/targets/lookup_lookup/aliases new file mode 100644 index 000000000..abc0d5476 --- /dev/null +++ b/ansible_collections/community/dns/tests/integration/targets/lookup_lookup/aliases @@ -0,0 +1,5 @@ +# Copyright (c) Ansible Project +# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +# SPDX-License-Identifier: GPL-3.0-or-later + +shippable/posix/group1 diff --git a/ansible_collections/community/dns/tests/integration/targets/lookup_lookup/tasks/main.yml b/ansible_collections/community/dns/tests/integration/targets/lookup_lookup/tasks/main.yml new file mode 100644 index 000000000..52ba9a46c --- /dev/null +++ b/ansible_collections/community/dns/tests/integration/targets/lookup_lookup/tasks/main.yml @@ -0,0 +1,26 @@ +--- +# Copyright (c) Ansible Project +# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +# SPDX-License-Identifier: GPL-3.0-or-later + +- name: Look up some records + ansible.builtin.set_fact: + ansible_a: >- + {{ query('community.dns.lookup', 'ansible.com', type='A') }} + ansible_aaaa: >- + {{ query('community.dns.lookup', 'ansible.com', type='AAAA', server='9.9.9.9') }} + ansible_txt: >- + {{ query('community.dns.lookup', 'ansible.com', type='TXT', server=['1.1.1.1', '8.8.8.8', 'dns9.quad9.net.']) }} + ansible_empty: >- + {{ query('community.dns.lookup', 'does-not-exist.ansible.com') }} + +- name: Check results + assert: + that: + - ansible_a | length > 0 + - ansible_a[0] is regex("^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$") + - ansible_aaaa | length > 0 + - ansible_aaaa[0] is regex("^[0-9a-fA-F:]+$") + - ansible_txt | length > 0 + - ansible_txt[0] is string + - ansible_empty | length == 0 diff --git a/ansible_collections/community/dns/tests/integration/targets/lookup_lookup_as_dict/aliases b/ansible_collections/community/dns/tests/integration/targets/lookup_lookup_as_dict/aliases new file mode 100644 index 000000000..abc0d5476 --- /dev/null +++ b/ansible_collections/community/dns/tests/integration/targets/lookup_lookup_as_dict/aliases @@ -0,0 +1,5 @@ +# Copyright (c) Ansible Project +# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +# SPDX-License-Identifier: GPL-3.0-or-later + +shippable/posix/group1 diff --git a/ansible_collections/community/dns/tests/integration/targets/lookup_lookup_as_dict/tasks/main.yml b/ansible_collections/community/dns/tests/integration/targets/lookup_lookup_as_dict/tasks/main.yml new file mode 100644 index 000000000..3ba6f52f0 --- /dev/null +++ b/ansible_collections/community/dns/tests/integration/targets/lookup_lookup_as_dict/tasks/main.yml @@ -0,0 +1,31 @@ +--- +# Copyright (c) Ansible Project +# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +# SPDX-License-Identifier: GPL-3.0-or-later + +- name: Look up some records + ansible.builtin.set_fact: + ansible_a: >- + {{ query('community.dns.lookup_as_dict', 'ansible.com', type='A') }} + ansible_aaaa: >- + {{ query('community.dns.lookup_as_dict', 'ansible.com', type='AAAA', server='9.9.9.9') }} + ansible_txt: >- + {{ query('community.dns.lookup_as_dict', 'ansible.com', type='TXT', server=['1.1.1.1', '8.8.8.8', 'dns9.quad9.net.']) }} + ansible_empty: >- + {{ query('community.dns.lookup_as_dict', 'does-not-exist.ansible.com') }} + +- name: Check results + assert: + that: + - ansible_a | length > 0 + - ansible_a[0].address is string + - ansible_a[0].address is regex("^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$") + - ansible_aaaa | length > 0 + - ansible_aaaa[0].address is string + - ansible_aaaa[0].address is regex("^[0-9a-fA-F:]+$") + - ansible_txt | length > 0 + - ansible_txt[0].strings is sequence + - ansible_txt[0].strings[0] is string + - ansible_txt[0].value is string + - ansible_txt | map(attribute='strings') | map('join') | list == ansible_txt | map(attribute='value') | list + - ansible_empty | length == 0 diff --git a/ansible_collections/community/dns/tests/integration/targets/nameserver_info/tasks/main.yml b/ansible_collections/community/dns/tests/integration/targets/nameserver_info/tasks/main.yml new file mode 100644 index 000000000..0b074df5a --- /dev/null +++ b/ansible_collections/community/dns/tests/integration/targets/nameserver_info/tasks/main.yml @@ -0,0 +1,78 @@ +--- +# Copyright (c) Ansible Project +# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +# SPDX-License-Identifier: GPL-3.0-or-later + +- name: Retrieve name servers of two DNS names + community.dns.nameserver_info: + name: + - www.example.com + - example.org + register: result + +- name: Show TXT values for www.example.com for all nameservers + ansible.builtin.debug: + msg: '{{ result }}' + +- name: Show nameservers for www.example.com + ansible.builtin.debug: + msg: '{{ result.results[0].nameservers }}' + +- name: Show TXT values for www.example.com for all nameservers + ansible.builtin.debug: + msg: '{{ result.results[0].nameservers[0] }}' + +- name: Validate results + assert: + that: + - result.results[0].nameservers[0] == 'a.iana-servers.net.' + - result.results[0].nameservers[1] == 'b.iana-servers.net.' + - result.results[0].nameservers[0] != 'b.iana-servers.net.' + +- name: Retrieve name servers of two DNS names using custom DNS servers + community.dns.nameserver_info: + name: + - www.example.com + - example.org + server: + # Quad9 servers (https://en.wikipedia.org/wiki/Quad9#Service) + - 9.9.9.9 + - 149.112.112.112 + - 2620:fe::9 + - 2620:fe::fe + register: result + +- name: Show TXT values for www.example.com for all nameservers + ansible.builtin.debug: + msg: '{{ result }}' + +- name: Show nameservers for www.example.com + ansible.builtin.debug: + msg: '{{ result.results[0].nameservers }}' + +- name: Show TXT values for www.example.com for first nameserver + ansible.builtin.debug: + msg: '{{ result.results[0].nameservers[0] }}' + +- name: Validate results + assert: + that: + - result.results[0].nameservers[0] == 'a.iana-servers.net.' + - result.results[0].nameservers[1] == 'b.iana-servers.net.' + - result.results[0].nameservers[0] != 'b.iana-servers.net.' + +- name: Retrieve name servers of a DNS name that do not exist + community.dns.nameserver_info: + name: + - foo.bar.example.com + register: result + +- name: Show TXT values for www.example.com for all nameservers + ansible.builtin.debug: + msg: '{{ result }}' + +- name: Validate results + assert: + that: + - result.results[0].nameservers[0] == 'a.iana-servers.net.' + - result.results[0].nameservers[1] == 'b.iana-servers.net.' diff --git a/ansible_collections/community/dns/tests/integration/targets/nameserver_record_info/tasks/main.yml b/ansible_collections/community/dns/tests/integration/targets/nameserver_record_info/tasks/main.yml new file mode 100644 index 000000000..b03b641fe --- /dev/null +++ b/ansible_collections/community/dns/tests/integration/targets/nameserver_record_info/tasks/main.yml @@ -0,0 +1,56 @@ +--- +# Copyright (c) Ansible Project +# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +# SPDX-License-Identifier: GPL-3.0-or-later + +- name: Retrieve TXT values from all nameservers for two DNS names + community.dns.nameserver_record_info: + name: + - www.example.com + - example.org + type: TXT + register: result + +- name: Show TXT values for www.example.com for all nameservers + ansible.builtin.debug: + msg: '{{ result }}' + +- name: Show TXT values for www.example.com for first nameserver + ansible.builtin.debug: + msg: '{{ result.results[0].result[0].nameserver }}' + +- name: Validate results + assert: + that: + - result.results[0].result[0].nameserver == 'a.iana-servers.net.' + - result.results[0].result[1].nameserver == 'b.iana-servers.net.' + - result.results[0].result[0].nameserver != 'b.iana-servers.net.' + +- name: Retrieve TXT values from all nameservers for two DNS names using custom DNS servers + community.dns.nameserver_record_info: + name: + - www.example.com + - example.org + type: TXT + server: + # Quad9 servers (https://en.wikipedia.org/wiki/Quad9#Service) + - 9.9.9.9 + - 149.112.112.112 + - 2620:fe::9 + - 2620:fe::fe + register: result + +- name: Show TXT values for www.example.com for all nameservers + ansible.builtin.debug: + msg: '{{ result }}' + +- name: Show TXT values for www.example.com for all nameservers + ansible.builtin.debug: + msg: '{{ result.results[0].result[0].nameserver }}' + +- name: Validate results + assert: + that: + - result.results[0].result[0].nameserver == 'a.iana-servers.net.' + - result.results[0].result[1].nameserver == 'b.iana-servers.net.' + - result.results[0].result[0].nameserver != 'b.iana-servers.net.' diff --git a/ansible_collections/community/dns/tests/integration/targets/wait_for_txt/aliases b/ansible_collections/community/dns/tests/integration/targets/wait_for_txt/aliases index 34334fd82..abc0d5476 100644 --- a/ansible_collections/community/dns/tests/integration/targets/wait_for_txt/aliases +++ b/ansible_collections/community/dns/tests/integration/targets/wait_for_txt/aliases @@ -3,4 +3,3 @@ # SPDX-License-Identifier: GPL-3.0-or-later shippable/posix/group1 -destructive diff --git a/ansible_collections/community/dns/tests/integration/targets/wait_for_txt/runme.sh b/ansible_collections/community/dns/tests/integration/targets/wait_for_txt/runme.sh deleted file mode 100755 index 9265e7ee1..000000000 --- a/ansible_collections/community/dns/tests/integration/targets/wait_for_txt/runme.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash -# Copyright (c) Ansible Project -# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) -# SPDX-License-Identifier: GPL-3.0-or-later - -set -eux - -export ANSIBLE_TEST_PREFER_VENV=1 # see https://github.com/ansible/ansible/pull/73000#issuecomment-757012395; can be removed once Ansible 2.9 and ansible-base 2.10 support has been dropped -source virtualenv.sh - -# Requirements have to be installed prior to running ansible-playbook -# because plugins and requirements are loaded before the task runs - -pip install dnspython - -ANSIBLE_ROLES_PATH=../ ansible-playbook runme.yml "$@" diff --git a/ansible_collections/community/dns/tests/integration/targets/wait_for_txt/tasks/main.yml b/ansible_collections/community/dns/tests/integration/targets/wait_for_txt/tasks/main.yml index fce443423..b706cfcae 100644 --- a/ansible_collections/community/dns/tests/integration/targets/wait_for_txt/tasks/main.yml +++ b/ansible_collections/community/dns/tests/integration/targets/wait_for_txt/tasks/main.yml @@ -8,7 +8,7 @@ records: - name: github.com values: | - {{ query('community.general.dig', 'github.com', 'qtype=TXT') | map('regex_replace', '" "', '') | list }} + {{ query('community.dns.lookup_as_dict', 'github.com', type='TXT') | map(attribute='value') | list }} - name: github.io values: [] query_timeout: 20 |