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/hcloud_volume/tasks/main.yml
Julian Tölle 23c2d7d228
ci: ubuntu-18.04 is deprecated/EOL (#224)
Update all references to ubuntu-18.04 (and 20.04) to 22.04, as ubuntu
18.04 is EOL and deprecated in Hetzner Cloud. This causes a CI failure
in the main branch:

https://dev.azure.com/ansible/hetzner.hcloud/_build/results?buildId=80941&view=logs&j=fdb818b8-39d8-529a-d9da-324e304604bc&t=2d52cce2-88ce-5057-da88-145e92cee00f&l=1094
2023-06-20 11:38:51 +02:00

289 lines
7.2 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
hcloud_server:
name: "{{hcloud_server_name}}"
server_type: cx11
image: ubuntu-22.04
state: started
location: "fsn1"
register: vol_server
- name: verify setup server
assert:
that:
- vol_server is changed
- name: test missing size parameter on create Volume
hcloud_volume:
name: "{{hcloud_volume_name}}"
server: "{{hcloud_server_name}}"
register: result
ignore_errors: yes
- 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
hcloud_volume:
name: "{{hcloud_volume_name}}"
size: 10
location: "fsn1"
register: result
check_mode: yes
- name: verify create Volume with check mode result
assert:
that:
- result is changed
- name: test create Volume
hcloud_volume:
name: "{{hcloud_volume_name}}"
size: 10
location: "fsn1"
register: volume
- name: verify test create Volume
assert:
that:
- volume is changed
- volume.hcloud_volume.name == "{{hcloud_volume_name}}"
- volume.hcloud_volume.location == "fsn1"
- volume.hcloud_volume.size == 10
- volume.hcloud_volume.server != "{{hcloud_server_name}}"
- volume.hcloud_volume.linux_device is defined
- name: test create Volume idempotence
hcloud_volume:
name: "{{hcloud_volume_name}}"
size: 10
location: "fsn1"
register: volume
- name: verify test create Volume
assert:
that:
- volume is not changed
- name: test attach Volume with checkmode
hcloud_volume:
name: "{{hcloud_volume_name}}"
server: "{{hcloud_server_name}}"
check_mode: yes
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
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
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
hcloud_volume:
name: "{{hcloud_volume_name}}"
check_mode: yes
register: volume
- name: verify detach Volume with checkmode
assert:
that:
- volume is changed
- volume.hcloud_volume.server == "{{hcloud_server_name}}"
- name: test detach Volume
hcloud_volume:
name: "{{hcloud_volume_name}}"
register: volume
- name: verify detach volume
assert:
that:
- volume is changed
- volume.hcloud_volume.location == "fsn1"
- volume.hcloud_volume.server != "{{hcloud_server_name}}"
- name: test update Volume label
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
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
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
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
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
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
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
hcloud_volume:
name: "{{hcloud_volume_name}}"
state: absent
ignore_errors: yes
register: result
- name: verify delete Volume fails if it is protected
assert:
that:
- result is failed
- 'result.msg == "volume deletion is protected"'
- name: test update Volume delete protection
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
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
hcloud_volume:
name: "{{hcloud_volume_name}}"
size: 10
location: "fsn1"
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
hcloud_volume:
name: "{{hcloud_volume_name}}"
state: absent
ignore_errors: yes
register: result
- name: verify delete Volume fails if it is protected
assert:
that:
- result is failed
- 'result.msg == "volume deletion is protected"'
- name: test update Volume delete protection
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
hcloud_volume:
name: "{{hcloud_volume_name}}"
state: absent
register: result
- name: verify delete Volume
assert:
that:
- result is success
- name: cleanup
hcloud_server:
name: "{{ hcloud_server_name }}"
state: absent
register: result
- name: verify cleanup
assert:
that:
- result is success