summaryrefslogtreecommitdiff
path: root/test/integration/targets/hcloud_network/tasks/main.yml
blob: 32bd579fad35cea3660ed828c4ca5109bb8b778e (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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
# 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_network:
    name: "{{ hcloud_network_name }}"
    state: absent
  register: result
- name: verify setup
  assert:
    that:
    - result is success

- name: test missing ip_range parameter on create Network
  hcloud_network:
    name: "{{hcloud_network_name}}"
  register: result
  ignore_errors: yes
- name: verify fail missing ip_range parameter on create Network result
  assert:
    that:
      - result is failed
      - 'result.msg == "missing required arguments: ip_range"'

- name: test create Network with check mode
  hcloud_network:
    name: "{{hcloud_network_name}}"
    ip_range: "10.0.0.0/16"
  register: result
  check_mode: yes
- name: verify create Network with check mode result
  assert:
    that:
      - result is changed

- name: test create Network
  hcloud_network:
    name: "{{hcloud_network_name}}"
    ip_range: "10.0.0.0/16"
  register: network
- name: verify test create Network result
  assert:
    that:
      - network is changed
      - network.hcloud_network.name == "{{hcloud_network_name}}"
      - network.hcloud_network.ip_range == "10.0.0.0/16"

- name: test create Network idempotence
  hcloud_network:
    name: "{{hcloud_network_name}}"
    ip_range: "10.0.0.0/16"
  register: network
- name: verify test create network
  assert:
    that:
      - network is not changed

- name: test update Network label
  hcloud_network:
    name: "{{hcloud_network_name}}"
    labels:
      key: value
  register: network
- name: verify test update Network label
  assert:
    that:
      - network is changed
      - network.hcloud_network.labels.key == "value"

- name: test update Network label idempotency
  hcloud_network:
    name: "{{hcloud_network_name}}"
    labels:
      key: value
  register: network
- name: verify test update Network label idempotency
  assert:
    that:
      - network is not changed

- name: test update Network ip range
  hcloud_network:
    name: "{{hcloud_network_name}}"
    ip_range: "10.0.0.0/8"
  register: network
- name: verify test update Network ip range
  assert:
    that:
      - network is changed
      - network.hcloud_network.ip_range == "10.0.0.0/8"

- name: test update Network ip range idempotency
  hcloud_network:
    name: "{{hcloud_network_name}}"
    ip_range: "10.0.0.0/8"
  register: network
- name: verify test update Network ip range idempotency
  assert:
    that:
      - network is not changed

- name: test update Network delete protection
  hcloud_network:
    name: "{{hcloud_network_name}}"
    ip_range: "10.0.0.0/8"
    delete_protection: true
  register: network
- name: verify test update Network delete protection
  assert:
    that:
      - network is changed
      - network.hcloud_network.delete_protection is sameas true

- name: test update Network delete protection idempotency
  hcloud_network:
    name: "{{hcloud_network_name}}"
    ip_range: "10.0.0.0/8"
    delete_protection: true
  register: network
- name: verify test update Network delete protection idempotency
  assert:
    that:
      - network is not changed
      - network.hcloud_network.delete_protection is sameas true

- name: test Network without delete protection set to be idempotent
  hcloud_network:
    name: "{{hcloud_network_name}}"
    ip_range: "10.0.0.0/8"
  register: network
- name: verify test Network without delete protection set to be idempotent
  assert:
    that:
      - network is not changed
      - network.hcloud_network.delete_protection is sameas true

- name: test delete Network fails if it is protected
  hcloud_network:
    name: "{{hcloud_network_name}}"
    state: absent
  ignore_errors: yes
  register: result
- name: verify delete Network
  assert:
    that:
      - result is failed
      - 'result.msg == "network deletion is protected"'

- name: test update Network delete protection
  hcloud_network:
    name: "{{hcloud_network_name}}"
    ip_range: "10.0.0.0/8"
    delete_protection: false
  register: network
- name: verify test update Network delete protection
  assert:
    that:
      - network is changed
      - network.hcloud_network.delete_protection is sameas false

- name: test delete Network
  hcloud_network:
    name: "{{hcloud_network_name}}"
    state: absent
  register: result
- name: verify delete Network
  assert:
    that:
      - result is success