mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-24 05:40:23 -07:00
vultr: new module vr_dns_record (#34423)
This commit is contained in:
parent
87f2893481
commit
1a8bbcf146
8 changed files with 732 additions and 0 deletions
36
test/legacy/roles/vr_dns_record/defaults/main.yml
Normal file
36
test/legacy/roles/vr_dns_record/defaults/main.yml
Normal file
|
@ -0,0 +1,36 @@
|
|||
---
|
||||
vr_dns_domain_name: example-ansible.com
|
||||
vr_dns_record_items:
|
||||
# Single A record
|
||||
- name: test-www
|
||||
data: 10.10.10.10
|
||||
ttl: 400
|
||||
update_data: 10.10.10.11
|
||||
update_ttl: 200
|
||||
|
||||
# Multiple A records
|
||||
- name: test-www-multiple
|
||||
data: 10.10.11.10
|
||||
update_data: 10.10.11.11
|
||||
multiple: true
|
||||
update_ttl: 600
|
||||
|
||||
# CNAME
|
||||
- name: test-cname
|
||||
data: www.ansible.com
|
||||
update_data: www.ansible.ch
|
||||
record_type: CNAME
|
||||
|
||||
# Single Multiple MX record
|
||||
- data: mx1.example-ansible.com
|
||||
priority: 10
|
||||
update_priority: 20
|
||||
record_type: MX
|
||||
|
||||
# Multiple MX records
|
||||
- data: mx2.example-ansible.com
|
||||
priority: 10
|
||||
update_data: mx1.example-ansible.com
|
||||
update_priority: 20
|
||||
record_type: MX
|
||||
multiple: true
|
65
test/legacy/roles/vr_dns_record/tasks/create_record.yml
Normal file
65
test/legacy/roles/vr_dns_record/tasks/create_record.yml
Normal file
|
@ -0,0 +1,65 @@
|
|||
---
|
||||
- name: test setup dns record
|
||||
vr_dns_record:
|
||||
name: "{{ item.name | default(omit) }}"
|
||||
domain: "{{ vr_dns_domain_name }}"
|
||||
record_type: "{{ item.record_type | default(omit) }}"
|
||||
state: absent
|
||||
register: result
|
||||
- name: verify test setup dns record
|
||||
assert:
|
||||
that:
|
||||
- result is successful
|
||||
|
||||
- name: test create a dns record in check mode
|
||||
vr_dns_record:
|
||||
name: "{{ item.name | default(omit) }}"
|
||||
domain: "{{ vr_dns_domain_name }}"
|
||||
data: "{{ item.data }}"
|
||||
ttl: "{{ item.ttl | default(omit) }}"
|
||||
record_type: "{{ item.record_type | default(omit) }}"
|
||||
priority: "{{ item.priority | default(omit) }}"
|
||||
check_mode: yes
|
||||
register: result
|
||||
- name: verify test create a dns record in check mode
|
||||
assert:
|
||||
that:
|
||||
- result is changed
|
||||
|
||||
- name: test create a dns record
|
||||
vr_dns_record:
|
||||
name: "{{ item.name | default(omit) }}"
|
||||
domain: "{{ vr_dns_domain_name }}"
|
||||
data: "{{ item.data }}"
|
||||
ttl: "{{ item.ttl | default(omit) }}"
|
||||
record_type: "{{ item.record_type | default(omit) }}"
|
||||
priority: "{{ item.priority | default(omit) }}"
|
||||
register: result
|
||||
- name: verify test create a dns record
|
||||
assert:
|
||||
that:
|
||||
- result is changed
|
||||
- result.vultr_dns_record.data == "{{ item.data }}"
|
||||
- result.vultr_dns_record.name == "{{ item.name | default("") }}"
|
||||
- result.vultr_dns_record.record_type == "{{ item.record_type | default('A') }}"
|
||||
- result.vultr_dns_record.ttl == {{ item.ttl | default(300) }}
|
||||
- result.vultr_dns_record.priority == {{ item.priority | default(0) }}
|
||||
|
||||
- name: test create a dns record idempotence
|
||||
vr_dns_record:
|
||||
name: "{{ item.name | default(omit) }}"
|
||||
domain: "{{ vr_dns_domain_name }}"
|
||||
data: "{{ item.data }}"
|
||||
ttl: "{{ item.ttl | default(omit) }}"
|
||||
record_type: "{{ item.record_type | default(omit) }}"
|
||||
priority: "{{ item.priority | default(omit) }}"
|
||||
register: result
|
||||
- name: verify test create a dns record idempotence
|
||||
assert:
|
||||
that:
|
||||
- result is not changed
|
||||
- result.vultr_dns_record.data == "{{ item.data }}"
|
||||
- result.vultr_dns_record.name == "{{ item.name | default("") }}"
|
||||
- result.vultr_dns_record.record_type == "{{ item.record_type | default('A') }}"
|
||||
- result.vultr_dns_record.ttl == {{ item.ttl | default(300) }}
|
||||
- result.vultr_dns_record.priority == {{ item.priority | default(0) }}
|
15
test/legacy/roles/vr_dns_record/tasks/main.yml
Normal file
15
test/legacy/roles/vr_dns_record/tasks/main.yml
Normal file
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
- name: setup dns domain
|
||||
vr_dns_domain:
|
||||
name: "{{ vr_dns_domain_name }}"
|
||||
server_ip: 10.10.10.10
|
||||
register: result
|
||||
- name: verify setup dns domain
|
||||
assert:
|
||||
that:
|
||||
- result is successful
|
||||
|
||||
- include_tasks: test_fail_multiple.yml
|
||||
|
||||
- include_tasks: record.yml
|
||||
with_items: "{{ vr_dns_record_items }}"
|
4
test/legacy/roles/vr_dns_record/tasks/record.yml
Normal file
4
test/legacy/roles/vr_dns_record/tasks/record.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
- include_tasks: create_record.yml
|
||||
- include_tasks: update_record.yml
|
||||
- include_tasks: remove_record.yml
|
112
test/legacy/roles/vr_dns_record/tasks/remove_record.yml
Normal file
112
test/legacy/roles/vr_dns_record/tasks/remove_record.yml
Normal file
|
@ -0,0 +1,112 @@
|
|||
---
|
||||
- name: test remove a dns record in check mode
|
||||
vr_dns_record:
|
||||
name: "{{ item.name | default(omit) }}"
|
||||
domain: "{{ vr_dns_domain_name }}"
|
||||
data: "{{ item.update_data | default(item.data) }}"
|
||||
record_type: "{{ item.record_type | default(omit) }}"
|
||||
multiple: "{{ item.multiple | default(omit) }}"
|
||||
state: absent
|
||||
check_mode: yes
|
||||
register: result
|
||||
- name: verify test remove a dns record in check mode
|
||||
assert:
|
||||
that:
|
||||
- result is changed
|
||||
- result.vultr_dns_record.data == "{{ item.update_data | default(item.data) }}"
|
||||
- result.vultr_dns_record.name == "{{ item.name | default("") }}"
|
||||
- result.vultr_dns_record.record_type == "{{ item.record_type | default('A') }}"
|
||||
- result.vultr_dns_record.ttl == {{ item.update_ttl | default(300) }}
|
||||
- result.vultr_dns_record.priority == {{ item.update_priority | default(item.priority | default(0)) }}
|
||||
|
||||
- name: test remove second dns record in check mode
|
||||
vr_dns_record:
|
||||
name: "{{ item.name | default(omit) }}"
|
||||
domain: "{{ vr_dns_domain_name }}"
|
||||
data: "{{ item.data | default(item.data) }}"
|
||||
record_type: "{{ item.record_type | default(omit) }}"
|
||||
multiple: "{{ item.multiple | default(omit) }}"
|
||||
state: absent
|
||||
check_mode: yes
|
||||
register: result
|
||||
when: item.multiple is defined and item.multiple == true
|
||||
- name: verify test remove a dns record in check mode
|
||||
assert:
|
||||
that:
|
||||
- result is changed
|
||||
- result.vultr_dns_record.data == "{{ item.data | default(item.data) }}"
|
||||
- result.vultr_dns_record.name == "{{ item.name | default("") }}"
|
||||
- result.vultr_dns_record.record_type == "{{ item.record_type | default('A') }}"
|
||||
- result.vultr_dns_record.ttl == {{ item.ttl | default(300) }}
|
||||
- result.vultr_dns_record.priority == {{ item.priority | default(0) }}
|
||||
when: item.multiple is defined and item.multiple == true
|
||||
|
||||
- name: test remove a dns record
|
||||
vr_dns_record:
|
||||
name: "{{ item.name | default(omit) }}"
|
||||
domain: "{{ vr_dns_domain_name }}"
|
||||
data: "{{ item.update_data | default(item.data) }}"
|
||||
record_type: "{{ item.record_type | default(omit) }}"
|
||||
multiple: "{{ item.multiple | default(omit) }}"
|
||||
state: absent
|
||||
register: result
|
||||
- name: verify test remove a dns record
|
||||
assert:
|
||||
that:
|
||||
- result is changed
|
||||
- result.vultr_dns_record.data == "{{ item.update_data | default(item.data) }}"
|
||||
- result.vultr_dns_record.name == "{{ item.name | default("") }}"
|
||||
- result.vultr_dns_record.record_type == "{{ item.record_type | default('A') }}"
|
||||
- result.vultr_dns_record.ttl == {{ item.update_ttl | default(300) }}
|
||||
- result.vultr_dns_record.priority == {{ item.update_priority | default(item.priority | default(0)) }}
|
||||
|
||||
- name: test remove second dns record
|
||||
vr_dns_record:
|
||||
name: "{{ item.name | default(omit) }}"
|
||||
domain: "{{ vr_dns_domain_name }}"
|
||||
data: "{{ item.data }}"
|
||||
record_type: "{{ item.record_type | default(omit) }}"
|
||||
multiple: "{{ item.multiple | default(omit) }}"
|
||||
state: absent
|
||||
register: result
|
||||
when: item.multiple is defined and item.multiple == true
|
||||
- name: verify test remove a dns record
|
||||
assert:
|
||||
that:
|
||||
- result is changed
|
||||
- result.vultr_dns_record.data == "{{ item.data }}"
|
||||
- result.vultr_dns_record.name == "{{ item.name | default("") }}"
|
||||
- result.vultr_dns_record.record_type == "{{ item.record_type | default('A') }}"
|
||||
- result.vultr_dns_record.ttl == {{ item.ttl | default(300) }}
|
||||
- result.vultr_dns_record.priority == {{ item.priority | default(0) }}
|
||||
when: item.multiple is defined and item.multiple == true
|
||||
|
||||
- name: test remove a dns record idempotence
|
||||
vr_dns_record:
|
||||
name: "{{ item.name | default(omit) }}"
|
||||
domain: "{{ vr_dns_domain_name }}"
|
||||
data: "{{ item.update_data | default(item.data) }}"
|
||||
record_type: "{{ item.record_type | default(omit) }}"
|
||||
multiple: "{{ item.multiple | default(omit) }}"
|
||||
state: absent
|
||||
register: result
|
||||
- name: verify test remove a dns record idempotence
|
||||
assert:
|
||||
that:
|
||||
- result is not changed
|
||||
|
||||
- name: test remove second dns record idempotence
|
||||
vr_dns_record:
|
||||
name: "{{ item.name | default(omit) }}"
|
||||
domain: "{{ vr_dns_domain_name }}"
|
||||
data: "{{ item.data }}"
|
||||
record_type: "{{ item.record_type | default(omit) }}"
|
||||
multiple: "{{ item.multiple | default(omit) }}"
|
||||
state: absent
|
||||
register: result
|
||||
when: item.multiple is defined and item.multiple == true
|
||||
- name: verify test remove a dns record idempotence
|
||||
assert:
|
||||
that:
|
||||
- result is not changed
|
||||
when: item.multiple is defined and item.multiple == true
|
76
test/legacy/roles/vr_dns_record/tasks/test_fail_multiple.yml
Normal file
76
test/legacy/roles/vr_dns_record/tasks/test_fail_multiple.yml
Normal file
|
@ -0,0 +1,76 @@
|
|||
---
|
||||
- name: setup first dns record
|
||||
vr_dns_record:
|
||||
name: test-multiple
|
||||
domain: "{{ vr_dns_domain_name }}"
|
||||
data: 1.2.3.4
|
||||
multiple: yes
|
||||
register: result
|
||||
- name: verify setup a dns record
|
||||
assert:
|
||||
that:
|
||||
- result is successful
|
||||
|
||||
- name: setup second dns record
|
||||
vr_dns_record:
|
||||
name: test-multiple
|
||||
domain: "{{ vr_dns_domain_name }}"
|
||||
data: 1.2.3.5
|
||||
multiple: yes
|
||||
register: result
|
||||
- name: verify setup second dns record
|
||||
assert:
|
||||
that:
|
||||
- result is successful
|
||||
|
||||
- name: test-multiple fail multiple identical records found
|
||||
vr_dns_record:
|
||||
name: test-multiple
|
||||
domain: "{{ vr_dns_domain_name }}"
|
||||
state: absent
|
||||
register: result
|
||||
ignore_errors: yes
|
||||
- name: verify test fail multiple identical records found
|
||||
assert:
|
||||
that:
|
||||
- result is failed
|
||||
|
||||
- name: test-multiple fail absent multiple identical records but not data
|
||||
vr_dns_record:
|
||||
name: test-multiple
|
||||
domain: "{{ vr_dns_domain_name }}"
|
||||
state: absent
|
||||
multiple: yes
|
||||
register: result
|
||||
ignore_errors: yes
|
||||
- name: verify test-multiple success absent multiple identical records found
|
||||
assert:
|
||||
that:
|
||||
- result is failed
|
||||
- "result.msg == 'multiple is True but all of the following are missing: data'"
|
||||
|
||||
- name: test-multiple success absent multiple identical records second found
|
||||
vr_dns_record:
|
||||
name: test-multiple
|
||||
domain: "{{ vr_dns_domain_name }}"
|
||||
data: 1.2.3.5
|
||||
state: absent
|
||||
multiple: yes
|
||||
register: result
|
||||
- name: verify test-multiple success absent multiple identical records second found
|
||||
assert:
|
||||
that:
|
||||
- result is changed
|
||||
|
||||
- name: test-multiple success absent multiple identical records first found
|
||||
vr_dns_record:
|
||||
name: test-multiple
|
||||
domain: "{{ vr_dns_domain_name }}"
|
||||
data: 1.2.3.4
|
||||
state: absent
|
||||
multiple: yes
|
||||
register: result
|
||||
- name: verify test-multiple success absent multiple identical records firstfound
|
||||
assert:
|
||||
that:
|
||||
- result is changed
|
68
test/legacy/roles/vr_dns_record/tasks/update_record.yml
Normal file
68
test/legacy/roles/vr_dns_record/tasks/update_record.yml
Normal file
|
@ -0,0 +1,68 @@
|
|||
---
|
||||
- name: test update or add another dns record in check mode
|
||||
vr_dns_record:
|
||||
name: "{{ item.name | default(omit) }}"
|
||||
domain: "{{ vr_dns_domain_name }}"
|
||||
data: "{{ item.update_data | default(item.data) }}"
|
||||
ttl: "{{ item.update_ttl | default(omit) }}"
|
||||
record_type: "{{ item.record_type | default(omit) }}"
|
||||
priority: "{{ item.update_priority | default(omit) }}"
|
||||
multiple: "{{ item.multiple | default(omit) }}"
|
||||
check_mode: yes
|
||||
register: result
|
||||
- name: verify test updatein check mode
|
||||
assert:
|
||||
that:
|
||||
- result is changed
|
||||
- result.vultr_dns_record.data == "{{ item.data }}"
|
||||
- result.vultr_dns_record.name == "{{ item.name | default("") }}"
|
||||
- result.vultr_dns_record.record_type == "{{ item.record_type | default('A') }}"
|
||||
- result.vultr_dns_record.ttl == {{ item.ttl | default(300) }}
|
||||
- result.vultr_dns_record.priority == {{ item.priority | default(0) }}
|
||||
when: item.multiple is undefined or item.multiple == false
|
||||
- name: verify test add another dns record in check mode
|
||||
assert:
|
||||
that:
|
||||
- result is changed
|
||||
- not result.vultr_dns_record
|
||||
when: item.multiple is defined and item.multiple == true
|
||||
|
||||
- name: test update or add another dns record
|
||||
vr_dns_record:
|
||||
name: "{{ item.name | default(omit) }}"
|
||||
domain: "{{ vr_dns_domain_name }}"
|
||||
data: "{{ item.update_data | default(item.data) }}"
|
||||
ttl: "{{ item.update_ttl | default(omit) }}"
|
||||
record_type: "{{ item.record_type | default(omit) }}"
|
||||
priority: "{{ item.update_priority | default(omit) }}"
|
||||
multiple: "{{ item.multiple | default(omit) }}"
|
||||
register: result
|
||||
- name: verify test update a dns record
|
||||
assert:
|
||||
that:
|
||||
- result is changed
|
||||
- result.vultr_dns_record.data == "{{ item.update_data | default(item.data) }}"
|
||||
- result.vultr_dns_record.name == "{{ item.name | default("") }}"
|
||||
- result.vultr_dns_record.ttl == {{ item.update_ttl | default(300) }}
|
||||
- result.vultr_dns_record.record_type == "{{ item.record_type | default('A') }}"
|
||||
- result.vultr_dns_record.priority == {{ item.update_priority | default(0) }}
|
||||
|
||||
- name: test update or add another dns record idempotence
|
||||
vr_dns_record:
|
||||
name: "{{ item.name | default(omit) }}"
|
||||
domain: "{{ vr_dns_domain_name }}"
|
||||
data: "{{ item.update_data | default(item.data) }}"
|
||||
ttl: "{{ item.update_ttl | default(omit) }}"
|
||||
record_type: "{{ item.record_type | default(omit) }}"
|
||||
priority: "{{ item.update_priority | default(omit) }}"
|
||||
multiple: "{{ item.multiple | default(omit) }}"
|
||||
register: result
|
||||
- name: verify test update a dns record idempotence
|
||||
assert:
|
||||
that:
|
||||
- result is not changed
|
||||
- result.vultr_dns_record.data == "{{ item.update_data | default(item.data) }}"
|
||||
- result.vultr_dns_record.name == "{{ item.name | default("") }}"
|
||||
- result.vultr_dns_record.ttl == {{ item.update_ttl | default(300) }}
|
||||
- result.vultr_dns_record.record_type == "{{ item.record_type | default('A') }}"
|
||||
- result.vultr_dns_record.priority == {{ item.update_priority | default(0) }}
|
Loading…
Add table
Add a link
Reference in a new issue