Integration test cleanup for cloudscale modules (#53629)

* Integration test cleanup for cloudscale modules

This refactors the cleanup procedure for the integration tests of the
cloudscale_server and cloudscale_volume modules to use an "always"
section for cleanup. The cleanup code also deletes all resources which
contain the test run prefix. This ensures that all resources are cleaned
up regardless of the actual test result which is a prerequisite for
running these tests in CI.

* Move cloudscale_floating_ip tests from legacy to integration

This also adds code to make sure that floating IPs are deleted even if a
test run fails. This is unfortunately not possible for floatint IPv6
networks.
This commit is contained in:
Gaudenz Steinlin
2019-03-12 17:53:49 +01:00
committed by René Moser
parent 3e52a6a693
commit 6471e4653d
15 changed files with 683 additions and 639 deletions

View File

@@ -0,0 +1,17 @@
---
- name: List all floating IPs
uri:
url: 'https://api.cloudscale.ch/v1/floating-ips'
headers:
Authorization: 'Bearer {{ cloudscale_api_token }}'
status_code: 200
register: floating_ip_list
- name: Remove all floating IPs created by this test run
cloudscale_floating_ip:
ip: '{{ item.network | ipaddr("address") }}'
state: 'absent'
when: cloudscale_resource_prefix in (item.reverse_ptr | string )
with_items: '{{ floating_ip_list.json }}'
loop_control:
label: '{{ item.reverse_ptr }} ({{ item.network }})'

View File

@@ -0,0 +1,17 @@
---
- name: List all servers
uri:
url: 'https://api.cloudscale.ch/v1/servers'
headers:
Authorization: 'Bearer {{ cloudscale_api_token }}'
status_code: 200
register: server_list
- name: Remove all servers created by this test run
cloudscale_server:
uuid: '{{ item.uuid }}'
state: 'absent'
when: cloudscale_resource_prefix in item.name
with_items: '{{ server_list.json }}'
loop_control:
label: '{{ item.name }} ({{ item.uuid }})'

View File

@@ -0,0 +1,17 @@
---
- name: List all volumes
uri:
url: 'https://api.cloudscale.ch/v1/volumes'
headers:
Authorization: 'Bearer {{ cloudscale_api_token }}'
status_code: 200
register: volume_list
- name: Remove all volumes created by this test run
cloudscale_volume:
uuid: '{{ item.uuid }}'
state: 'absent'
when: cloudscale_resource_prefix in item.name
with_items: '{{ volume_list.json }}'
loop_control:
label: '{{ item.name }} ({{ item.uuid }})'