1
0
Fork 0
mirror of https://github.com/ansible-collections/hetzner.hcloud.git synced 2026-02-04 08:01:49 +00:00
hetzner.hcloud/tests/integration/targets/volume/tasks/test.yml
Jonas L f3d697c006
test: use shared variable for server type, image and location (#522)
##### SUMMARY

Use shared variables to store information about which server type, image
or location to use for our integrations tests.

- The location was changed from FSN to HEL.
- The image was changed from ubuntu-22.04 to debian-12.
2024-06-26 16:10:58 +02:00

290 lines
7.6 KiB
YAML

# 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 server
hetzner.hcloud.server:
name: "{{hcloud_server_name}}"
server_type: "{{ hcloud_server_type_name }}"
image: "{{ hcloud_image_name }}"
state: stopped
location: "{{ hcloud_location_name }}"
register: vol_server
- name: verify setup server
assert:
that:
- vol_server is changed
- name: test missing size parameter on create Volume
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
server: "{{hcloud_server_name}}"
register: result
ignore_errors: true
- name: verify fail test missing size parameter on create Volume
assert:
that:
- result is failed
- 'result.msg == "missing required arguments: size"'
- name: test create Volume with check mode
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
size: 10
location: "{{ hcloud_location_name }}"
register: result
check_mode: true
- name: verify create Volume with check mode result
assert:
that:
- result is changed
- name: test create Volume
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
size: 10
location: "{{ hcloud_location_name }}"
register: volume
- name: verify test create Volume
assert:
that:
- volume is changed
- volume.hcloud_volume.name == hcloud_volume_name
- volume.hcloud_volume.location == hcloud_location_name
- volume.hcloud_volume.size == 10
- volume.hcloud_volume.server != hcloud_server_name
- volume.hcloud_volume.linux_device is defined
- name: test create Volume idempotence
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
size: 10
location: "{{ hcloud_location_name }}"
register: volume
- name: verify test create Volume
assert:
that:
- volume is not changed
- name: test attach Volume with checkmode
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
server: "{{hcloud_server_name}}"
check_mode: true
register: volume
- name: verify test attach Volume with checkmode
assert:
that:
- volume is changed
- volume.hcloud_volume.server != hcloud_server_name
- name: test attach Volume
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
server: "{{hcloud_server_name}}"
register: volume
- name: verify attach volume
assert:
that:
- volume is changed
- volume.hcloud_volume.server == hcloud_server_name
- name: test attach Volume idempotence
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
server: "{{hcloud_server_name}}"
register: volume
- name: verify attach Volume idempotence
assert:
that:
- volume is not changed
- volume.hcloud_volume.server == hcloud_server_name
- name: test detach Volume with checkmode
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
check_mode: true
register: volume
- name: verify detach Volume with checkmode
assert:
that:
- volume is changed
- volume.hcloud_volume.server == hcloud_server_name
- name: test detach Volume
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
register: volume
- name: verify detach volume
assert:
that:
- volume is changed
- volume.hcloud_volume.location == hcloud_location_name
- volume.hcloud_volume.server != hcloud_server_name
- name: test update Volume label
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
labels:
key: value
register: volume
- name: verify test update Volume label
assert:
that:
- volume is changed
- volume.hcloud_volume.labels.key == "value"
- name: test update Volume label with the same label
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
labels:
key: value
register: volume
- name: verify test update Volume lable with the same label
assert:
that:
- volume is not changed
- name: test increase Volume size
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
size: 11
register: volume
- name: verify test increase Volume size
assert:
that:
- volume is changed
- volume.hcloud_volume.size == 11
- name: test decreace Volume size
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
size: 10
register: volume
- name: verify test decreace Volume size
assert:
that:
- volume is not changed
- volume.hcloud_volume.size == 11
- name: test update Volume delete protection
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
delete_protection: true
register: volume
- name: verify test update Volume delete protection
assert:
that:
- volume is changed
- volume.hcloud_volume.delete_protection is sameas true
- name: test update Volume delete protection idempotency
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
delete_protection: true
register: volume
- name: verify test update Volume delete protection idempotency
assert:
that:
- volume is not changed
- volume.hcloud_volume.delete_protection is sameas true
- name: test Volume without delete protection set to be idempotent
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
register: volume
- name: verify test Volume without delete protection set to be idempotent
assert:
that:
- volume is not changed
- volume.hcloud_volume.delete_protection is sameas true
- name: test delete Volume fails if it is protected
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
state: absent
ignore_errors: true
register: result
- name: verify delete Volume fails if it is protected
assert:
that:
- result is failed
- result.failure.code == "protected"
- result.msg == "volume deletion is protected"
- name: test update Volume delete protection
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
delete_protection: false
register: volume
- name: verify test update Volume delete protection
assert:
that:
- volume is changed
- volume.hcloud_volume.delete_protection is sameas false
- name: test delete Volume
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
state: absent
register: result
- name: verify delete Volume
assert:
that:
- result is success
- name: test create Volume with delete protection
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
size: 10
location: "{{ hcloud_location_name }}"
delete_protection: true
register: volume
- name: verify create Volume with delete protection
assert:
that:
- volume is changed
- volume.hcloud_volume.delete_protection is sameas true
- name: test delete Volume fails if it is protected
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
state: absent
ignore_errors: true
register: result
- name: verify delete Volume fails if it is protected
assert:
that:
- result is failed
- result.failure.code == "protected"
- result.msg == "volume deletion is protected"
- name: test update Volume delete protection
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
delete_protection: false
register: volume
- name: verify test update Volume delete protection
assert:
that:
- volume is changed
- volume.hcloud_volume.delete_protection is sameas false
- name: test delete Volume
hetzner.hcloud.volume:
name: "{{hcloud_volume_name}}"
state: absent
register: result
- name: verify delete Volume
assert:
that:
- result is success
- name: cleanup
hetzner.hcloud.server:
name: "{{ hcloud_server_name }}"
state: absent
register: result
- name: verify cleanup
assert:
that:
- result is success