summaryrefslogtreecommitdiff
path: root/test/integration/targets/hcloud_rdns/tasks/main.yml
blob: b3b7e4ea0e4df0a671b5a14ad3b7849889e65877 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# Copyright: (c) 2019, Hetzner Cloud GmbH <info@hetzner-cloud.de>
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
---
- name: setup
  hcloud_server:
    name: "{{ hcloud_server_name }}"
    server_type: cx11
    image: "ubuntu-18.04"
    ssh_keys:
      - ci@ansible.hetzner.cloud
    state: present
  register: setup
- name: verify setup
  assert:
    that:
    - setup is success

- name: test missing required parameter
  hcloud_rdns:
    state: present
  register: result
  ignore_errors: yes
- name: verify fail test missing required parameters
  assert:
    that:
      - result is failed
      - 'result.msg == "missing required arguments: ip_address, server" or result.msg == "missing required arguments: server, ip_address"'

- name: test missing required parameters on create
  hcloud_rdns:
    server: "{{ hcloud_server_name }}"
    ip_address: "{{ setup.hcloud_server.ipv6 | ipaddr('next_usable') }}"
    state: present
  register: result
  ignore_errors: yes
- name: verify fail test missing required parameters on create
  assert:
    that:
      - result is failed
      - 'result.msg == "missing required arguments: dns_ptr"'

- name: test create rdns with checkmode
  hcloud_rdns:
    server: "{{ hcloud_server_name }}"
    ip_address: "{{ setup.hcloud_server.ipv6 | ipaddr('next_usable') }}"
    dns_ptr: "example.com"
    state: present
  register: result
  check_mode: yes
- name: verify test create rdns with checkmode
  assert:
    that:
    - result is changed

- name: test create rdns
  hcloud_rdns:
    server: "{{ hcloud_server_name }}"
    ip_address: "{{ setup.hcloud_server.ipv6 | ipaddr('next_usable') }}"
    dns_ptr: "example.com"
    state: present
  register: rdns
- name: verify create rdns
  assert:
    that:
    - rdns is changed
    - rdns.hcloud_rdns.server == "{{ hcloud_server_name }}"
    - rdns.hcloud_rdns.ip_address == "{{ setup.hcloud_server.ipv6 | ipaddr('next_usable') }}"
    - rdns.hcloud_rdns.dns_ptr == "example.com"

- name: test create rdns idempotency
  hcloud_rdns:
    server: "{{ hcloud_server_name }}"
    ip_address: "{{ setup.hcloud_server.ipv6 | ipaddr('next_usable') }}"
    dns_ptr: "example.com"
    state: present
  register: result
- name: verify create rdns idempotency
  assert:
    that:
    - result is not changed

- name: test absent rdns
  hcloud_rdns:
    server: "{{ hcloud_server_name }}"
    ip_address: "{{ setup.hcloud_server.ipv6 | ipaddr('next_usable') }}"
    state: absent
  register: result
- name: verify test absent rdns
  assert:
    that:
    - result is changed

- name: test update rdns
  hcloud_rdns:
    server: "{{ hcloud_server_name }}"
    ip_address: "{{ setup.hcloud_server.ipv4_address }}"
    dns_ptr: "example.com"
    state: present
  register: rdns
- name: verify update rdns
  assert:
    that:
    - rdns is changed
    - rdns.hcloud_rdns.server == "{{ hcloud_server_name }}"
    - rdns.hcloud_rdns.ip_address == "{{ setup.hcloud_server.ipv4_address }}"
    - rdns.hcloud_rdns.dns_ptr == "example.com"

- name: test reset rdns
  hcloud_rdns:
    server: "{{ hcloud_server_name }}"
    ip_address: "{{ setup.hcloud_server.ipv4_address }}"
    state: present
  register: rdns
- name: verify reset rdns
  assert:
    that:
    - rdns is changed
    - rdns.hcloud_rdns.server == "{{ hcloud_server_name }}"
    - rdns.hcloud_rdns.ip_address == "{{ setup.hcloud_server.ipv4_address }}"
    - rdns.hcloud_rdns.dns_ptr != "example.com"

- name: cleanup
  hcloud_server:
    name: "{{hcloud_server_name}}"
    state: absent
  register: result
- name: verify cleanup
  assert:
    that:
      - result is success