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/placement_group/tasks/test.yml
Jonas L 00a4fdd58a
fix: use empty string to remove server from its placement group (#489)
##### SUMMARY
- Do not remove the server from its placement group when the
`placement_group` argument is not specified.
- Pass an empty string to the `placement_group` argument to remove a
server from its placement group.
2024-04-04 16:53:32 +02:00

169 lines
4.9 KiB
YAML

# Copyright: (c) 2020, 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 placement group to be absent
hetzner.hcloud.placement_group:
name: "{{ hcloud_placement_group_name }}"
state: absent
- name: setup server to be absent
hetzner.hcloud.server:
name: "{{ hcloud_server_name }}"
state: absent
- name: test missing required parameters on create placement group
hetzner.hcloud.placement_group:
register: result
ignore_errors: true
- name: verify fail test missing required parameters on create placement group
assert:
that:
- result is failed
- 'result.msg == "one of the following is required: id, name"'
- name: test create placement group with check mode
hetzner.hcloud.placement_group:
name: "{{ hcloud_placement_group_name }}"
type: spread
register: result
check_mode: true
- name: test create placement group with check mode
assert:
that:
- result is changed
- name: test create placement group
hetzner.hcloud.placement_group:
name: "{{ hcloud_placement_group_name }}"
type: spread
labels:
key: value
my-label: label
register: placement_group
- name: verify create placement group
assert:
that:
- placement_group is changed
- placement_group.hcloud_placement_group.name == hcloud_placement_group_name
- placement_group.hcloud_placement_group.type == "spread"
- placement_group.hcloud_placement_group.servers | list | count == 0
- name: test create placement group idempotence
hetzner.hcloud.placement_group:
name: "{{ hcloud_placement_group_name }}"
type: spread
labels:
key: value
my-label: label
register: result
- name: verify create placement group idempotence
assert:
that:
- result is not changed
- name: test create server with placement group
hetzner.hcloud.server:
name: "{{ hcloud_server_name }}"
server_type: cpx11
placement_group: "{{ hcloud_placement_group_name }}"
image: "ubuntu-22.04"
ssh_keys:
- "{{ hcloud_ssh_key_name }}"
state: present
register: server
- name: verify create server with placement group
assert:
that:
- server is changed
- server.hcloud_server.placement_group == hcloud_placement_group_name
- name: test remove server from placement group
hetzner.hcloud.server:
name: "{{ hcloud_server_name }}"
placement_group: ""
state: present
register: result
- name: verify remove server from placement group
assert:
that:
- result is changed
- result.hcloud_server.placement_group == None
- name: test add server to placement group
hetzner.hcloud.server:
name: "{{ hcloud_server_name }}"
placement_group: "{{ hcloud_placement_group_name }}"
force: True
state: present
register: result
- name: verify add server to placement group
assert:
that:
- result is changed
- result.hcloud_server.placement_group == hcloud_placement_group_name
- result.hcloud_server.status == "running"
- name: test add server to placement group idempotence
hetzner.hcloud.server:
name: "{{ hcloud_server_name }}"
placement_group: "{{ hcloud_placement_group_name }}"
force: True
state: present
register: result
- name: verify add server to placement group idempotence
assert:
that:
- result is not changed
- result.hcloud_server.placement_group == hcloud_placement_group_name
- result.hcloud_server.status == "running"
- name: test update placement group with check mode
hetzner.hcloud.placement_group:
id: "{{ placement_group.hcloud_placement_group.id }}"
name: "changed-{{ hcloud_placement_group_name }}"
register: result
check_mode: true
- name: verify update placement group with check mode
assert:
that:
- result is changed
- name: test update placement group
hetzner.hcloud.placement_group:
id: "{{ placement_group.hcloud_placement_group.id }}"
name: "changed-{{ hcloud_placement_group_name }}"
labels:
key: value
register: result
- name: verify update placement group
assert:
that:
- result is changed
- result.hcloud_placement_group.name == "changed-{{ hcloud_placement_group_name }}"
- name: test update placement group idempotence
hetzner.hcloud.placement_group:
id: "{{ placement_group.hcloud_placement_group.id }}"
name: "changed-{{ hcloud_placement_group_name }}"
labels:
key: value
register: result
- name: verify update placement group idempotence
assert:
that:
- result is not changed
- name: absent server
hetzner.hcloud.server:
id: "{{ server.hcloud_server.id }}"
state: absent
- name: absent placement group
hetzner.hcloud.placement_group:
id: "{{ placement_group.hcloud_placement_group.id }}"
state: absent
register: result
- name: verify absent placement group
assert:
that:
- result is success