1# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
2# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
3---
4- name: setup
5  vultr_network:
6    name: "{{ vultr_network_name }}"
7    state: absent
8  register: result
9- name: verify setup
10  assert:
11    that:
12    - result is success
13
14- name: test fail if missing name
15  vultr_network:
16  register: result
17  ignore_errors: yes
18- name: verify test fail if missing name
19  assert:
20    that:
21    - result is failed
22    - 'result.msg == "missing required arguments: name"'
23
24- name: test fail if missing params for state=present
25  vultr_network:
26    name: "{{ vultr_network_name }}"
27  register: result
28  ignore_errors: yes
29- name: verify fail if missing params for state=present
30  assert:
31    that:
32    - result is failed
33    - 'result.msg == "state is present but all of the following are missing: cidr, region"'
34
35- name: test create network in check mode
36  vultr_network:
37    name: "{{ vultr_network_name }}"
38    cidr: "{{ vultr_network_cidr }}"
39    region: "{{ vultr_network_region }}"
40  register: result
41  check_mode: yes
42- name: verify test create server in check mode
43  assert:
44    that:
45    - result is changed
46
47- name: test create network
48  vultr_network:
49    name: "{{ vultr_network_name }}"
50    cidr: "{{ vultr_network_cidr }}"
51    region: "{{ vultr_network_region }}"
52  register: result
53
54- name: verify test create network
55  assert:
56    that:
57    - result is changed
58    - result.vultr_network.name == "{{ vultr_network_name }}"
59    - result.vultr_network.region == "{{ vultr_network_region }}"
60    - result.vultr_network.v4_subnet == "{{ vultr_network_cidr.split('/')[0] }}"
61    - result.vultr_network.v4_subnet_mask == 24
62
63- name: test create network idempotence
64  vultr_network:
65    name: "{{ vultr_network_name }}"
66    cidr: "{{ vultr_network_cidr }}"
67    region: "{{ vultr_network_region }}"
68  register: result
69
70- name: verify test network idempotence
71  assert:
72    that:
73    - result is not changed
74    - result.vultr_network.name == "{{ vultr_network_name }}"
75    - result.vultr_network.region == "{{ vultr_network_region }}"
76    - result.vultr_network.v4_subnet == "{{ vultr_network_cidr.split('/')[0] }}"
77    - result.vultr_network.v4_subnet_mask == 24
78
79- name: test destroy network in check mode
80  vultr_network:
81    name: "{{ vultr_network_name }}"
82    state: absent
83  register: result
84  check_mode: yes
85
86- name: verify test destroy network in check mode
87  assert:
88    that:
89    - result is changed
90    - result.vultr_network.name == "{{ vultr_network_name }}"
91
92- name: test destroy network volume
93  vultr_network:
94    name: "{{ vultr_network_name }}"
95    state: absent
96  register: result
97
98- name: verify test destroy an existing network
99  assert:
100    that:
101    - result is changed
102    - result.vultr_network.name == "{{ vultr_network_name }}"
103
104- name: test destroy an existing network idempotence
105  vultr_network:
106    name: "{{ vultr_network_name }}"
107    state: absent
108  register: result
109
110- name: verify test destroy an existing network idempotence
111  assert:
112    that:
113    - result is not changed
114