# Copyright: (c) 2019, Hetzner Cloud GmbH # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) --- - name: setup hcloud_ssh_key: fingerprint: "{{ hcloud_ssh_key_fingerprint }}" state: absent register: result - name: verify setup assert: that: - result is success - name: test missing required parameters on create ssh_key hcloud_ssh_key: name: "{{ hcloud_ssh_key_name }}" register: result ignore_errors: yes - name: verify fail test missing required parameters on create server assert: that: - result is failed - 'result.msg == "missing required arguments: public_key"' - name: test create ssh key with check mode hcloud_ssh_key: name: "{{ hcloud_ssh_key_name }}" public_key: "{{ hcloud_ssh_key_public_key }}" register: result check_mode: yes - name: test create ssh key with check mode assert: that: - result is changed - name: test create ssh key hcloud_ssh_key: name: "{{ hcloud_ssh_key_name }}" public_key: "{{ hcloud_ssh_key_public_key }}" labels: key: value my-label: label register: sshKey - name: verify create ssh key assert: that: - sshKey is changed - sshKey.hcloud_ssh_key.name == "{{ hcloud_ssh_key_name }}" - sshKey.hcloud_ssh_key.public_key == "{{ hcloud_ssh_key_public_key }}" - sshKey.hcloud_ssh_key.fingerprint == "{{ hcloud_ssh_key_fingerprint }}" - sshKey.hcloud_ssh_key.labels.key == "value" - name: test create ssh key idempotence hcloud_ssh_key: name: "{{ hcloud_ssh_key_name }}" public_key: "{{ hcloud_ssh_key_public_key }}" register: result - name: verify create ssh key idempotence assert: that: - result is not changed - name: test update ssh key with check mode hcloud_ssh_key: id: "{{ sshKey.hcloud_ssh_key.id }}" name: "changed-ssh-key-name" register: result check_mode: yes - name: test create ssh key with check mode assert: that: - result is changed - name: test update ssh key hcloud_ssh_key: id: "{{ sshKey.hcloud_ssh_key.id }}" name: "changed-ssh-key-name" labels: key: value register: result - name: test update ssh key assert: that: - result is changed - result.hcloud_ssh_key.name == "changed-ssh-key-name" - name: test update ssh key with same labels hcloud_ssh_key: id: "{{ sshKey.hcloud_ssh_key.id }}" name: "changed-ssh-key-name" labels: key: value register: result - name: test update ssh key with same labels assert: that: - result is not changed - name: test update ssh key with other labels hcloud_ssh_key: id: "{{ sshKey.hcloud_ssh_key.id }}" name: "changed-ssh-key-name" labels: key: value test: 123 register: result - name: test update ssh key with other labels assert: that: - result is changed - name: test rename ssh key hcloud_ssh_key: id: "{{ sshKey.hcloud_ssh_key.id }}" name: "{{ hcloud_ssh_key_name }}" register: result - name: test rename ssh key assert: that: - result is changed - result.hcloud_ssh_key.name == "{{ hcloud_ssh_key_name }}" - name: test create server with ssh key hcloud_server: name: "{{ hcloud_server_name }}" server_type: cx11 image: "ubuntu-18.04" ssh_keys: - "{{ hcloud_ssh_key_name }}" state: started register: main_server - name: verify create server with ssh key assert: that: - main_server is changed - name: absent ssh key hcloud_ssh_key: id: "{{ sshKey.hcloud_ssh_key.id }}" state: absent register: result - name: verify absent server 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