diff --git a/changelogs/fragments/gh7-allow-enabling-of-backups-on-server-creation.yml b/changelogs/fragments/gh7-allow-enabling-of-backups-on-server-creation.yml new file mode 100644 index 0000000..ceb705f --- /dev/null +++ b/changelogs/fragments/gh7-allow-enabling-of-backups-on-server-creation.yml @@ -0,0 +1,2 @@ +minor_changes: + - hcloud_server Allow the creation of servers with enabled backups diff --git a/plugins/modules/hcloud_server.py b/plugins/modules/hcloud_server.py index 86ad04d..cf00ae9 100644 --- a/plugins/modules/hcloud_server.py +++ b/plugins/modules/hcloud_server.py @@ -352,6 +352,11 @@ class AnsibleHcloudServer(Hcloud): self._get_server() self._set_rescue_mode(rescue_mode) + backups = self.module.params.get("backups") + if backups: + self._get_server() + self.hcloud_server.enable_backup().wait_until_finished() + self._mark_as_changed() self._get_server() diff --git a/tests/integration/targets/hcloud_server/tasks/main.yml b/tests/integration/targets/hcloud_server/tasks/main.yml index 945df73..89e8e0f 100644 --- a/tests/integration/targets/hcloud_server/tasks/main.yml +++ b/tests/integration/targets/hcloud_server/tasks/main.yml @@ -563,3 +563,29 @@ assert: that: - result is success + +- name: test create server with enabled backups + hcloud_server: + name: "{{ hcloud_server_name }}" + server_type: cpx11 + backups: true + image: "ubuntu-18.04" + ssh_keys: + - ci@ansible.hetzner.cloud + state: present + register: result +- name: verify enable backups + assert: + that: + - result is changed + - result.hcloud_server.backup_window != "" + +- name: test create server with enabled backups + hcloud_server: + name: "{{ hcloud_server_name }}" + state: absent + register: result +- name: verify cleanup + assert: + that: + - result is success