1- name: Create a scaleway security_group
2  scaleway_security_group:
3    state: present
4    region: '{{ scaleway_region }}'
5    name: test_compute
6    description: test_compute
7    organization: '{{ scaleway_organization }}'
8    stateful: true
9    inbound_default_policy: accept
10    outbound_default_policy: accept
11    organization_default: false
12  register: security_group
13
14- debug: var=security_group
15
16- block:
17  - name: Create a server with security_group (Check)
18    check_mode: yes
19    scaleway_compute:
20      name: '{{ scaleway_name }}'
21      state: present
22      image: '{{ scaleway_image_id }}'
23      organization: '{{ scaleway_organization }}'
24      region: '{{ scaleway_region }}'
25      commercial_type: '{{ scaleway_commerial_type }}'
26      security_group: '{{ security_group.scaleway_security_group.id }}'
27
28    register: server_creation_check_task
29
30  - debug: var=server_creation_check_task
31
32  - assert:
33      that:
34        - server_creation_check_task is success
35        - server_creation_check_task is changed
36
37  - name: Create a server
38    scaleway_compute:
39      name: '{{ scaleway_name }}'
40      state: present
41      image: '{{ scaleway_image_id }}'
42      organization: '{{ scaleway_organization }}'
43      region: '{{ scaleway_region }}'
44      commercial_type: '{{ scaleway_commerial_type }}'
45      security_group: '{{ security_group.scaleway_security_group.id }}'
46      wait: true
47
48    register: server_creation_task
49
50  - debug: var=server_creation_task
51
52  - assert:
53      that:
54        - server_creation_task is success
55        - server_creation_task is changed
56
57  - name: Create a server with security_group (Confirmation)
58    scaleway_compute:
59      name: '{{ scaleway_name }}'
60      state: present
61      image: '{{ scaleway_image_id }}'
62      organization: '{{ scaleway_organization }}'
63      region: '{{ scaleway_region }}'
64      commercial_type: '{{ scaleway_commerial_type }}'
65      security_group: '{{ security_group.scaleway_security_group.id }}'
66      wait: true
67
68    register: server_creation_confirmation_task
69
70  - debug: var=server_creation_confirmation_task
71
72  - assert:
73      that:
74        - server_creation_confirmation_task is success
75        - server_creation_confirmation_task is not changed
76
77  - name: Keep current security_group (Check)
78    check_mode: yes
79    scaleway_compute:
80      name: '{{ scaleway_name }}'
81      state: present
82      image: '{{ scaleway_image_id }}'
83      organization: '{{ scaleway_organization }}'
84      region: '{{ scaleway_region }}'
85      commercial_type: '{{ scaleway_commerial_type }}'
86      security_group: '{{ security_group.scaleway_security_group.id }}'
87      wait: true
88
89    register: server_creation_confirmation_task
90
91  - debug: var=server_creation_confirmation_task
92
93  - assert:
94      that:
95        - server_creation_confirmation_task is success
96        - server_creation_confirmation_task is not changed
97
98  - name: Keep current security_group
99    scaleway_compute:
100      name: '{{ scaleway_name }}'
101      state: present
102      image: '{{ scaleway_image_id }}'
103      organization: '{{ scaleway_organization }}'
104      region: '{{ scaleway_region }}'
105      commercial_type: '{{ scaleway_commerial_type }}'
106      wait: true
107
108    register: server_creation_confirmation_task
109
110  - debug: var=server_creation_confirmation_task
111
112  - assert:
113      that:
114        - server_creation_confirmation_task is success
115        - server_creation_confirmation_task is not changed
116
117  always:
118    - name: Destroy it
119      scaleway_compute:
120        name: '{{ scaleway_name }}'
121        state: absent
122        image: '{{ scaleway_image_id }}'
123        organization: '{{ scaleway_organization }}'
124        region: '{{ scaleway_region }}'
125        commercial_type: '{{ scaleway_commerial_type }}'
126        wait: true
127
128      register: server_destroy_task
129
130    - debug: var=server_destroy_task
131
132    - assert:
133        that:
134          - server_destroy_task is success
135          - server_destroy_task is changed
136
137    - name: Create a scaleway security_group
138      scaleway_security_group:
139        state: absent
140        region: '{{ scaleway_region }}'
141        name: test_compute
142        description: test_compute
143        organization: '{{ scaleway_organization }}'
144        stateful: true
145        inbound_default_policy: accept
146        outbound_default_policy: accept
147        organization_default: false
148