From 3f579eb68ff9100884e31c5570bd275d9d60e69a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20K=C3=A4mmerling?= <4281581+LKaemmerling@users.noreply.github.com> Date: Wed, 10 Apr 2019 15:16:10 +0200 Subject: [PATCH] hcloud: Fix testsuite (#55076) --- .../modules/cloud/hcloud/hcloud_server.py | 2 +- .../cloud/hcloud/hcloud_volume_facts.py | 2 +- .../targets/hcloud_floating_ip_facts/aliases | 1 - .../hcloud_floating_ip_facts/tasks/main.yml | 28 ++++++++-------- .../targets/hcloud_image_facts/aliases | 1 - .../targets/hcloud_image_facts/tasks/main.yml | 4 ++- .../integration/targets/hcloud_server/aliases | 1 - .../targets/hcloud_server/tasks/main.yml | 6 ++-- .../targets/hcloud_server_facts/aliases | 1 - .../hcloud_server_facts/tasks/main.yml | 7 ---- .../targets/hcloud_ssh_key/aliases | 1 - .../targets/hcloud_ssh_key/meta/main.yml | 2 ++ .../targets/hcloud_ssh_key/tasks/main.yml | 32 +++++++------------ .../targets/hcloud_ssh_key_facts/aliases | 1 - .../hcloud_ssh_key_facts/defaults/main.yml | 3 +- .../hcloud_ssh_key_facts/meta/main.yml | 2 ++ .../hcloud_ssh_key_facts/tasks/main.yml | 16 +++------- .../targets/hcloud_volume/defaults/main.yml | 2 +- .../targets/hcloud_volume_facts/aliases | 1 - .../hcloud_volume_facts/defaults/main.yml | 2 +- .../hcloud_volume_facts/tasks/main.yml | 7 ---- 21 files changed, 47 insertions(+), 75 deletions(-) create mode 100644 test/integration/targets/hcloud_ssh_key/meta/main.yml create mode 100644 test/integration/targets/hcloud_ssh_key_facts/meta/main.yml diff --git a/lib/ansible/modules/cloud/hcloud/hcloud_server.py b/lib/ansible/modules/cloud/hcloud/hcloud_server.py index f769bb3a73a..5c4a92f1a19 100644 --- a/lib/ansible/modules/cloud/hcloud/hcloud_server.py +++ b/lib/ansible/modules/cloud/hcloud/hcloud_server.py @@ -301,7 +301,7 @@ class AnsibleHcloudServer(Hcloud): timeout = 100 if self.module.params.get("upgrade_disk"): timeout = ( - 500 + 1000 ) # When we upgrade the disk too the resize progress takes some more time. if not self.module.check_mode: self.hcloud_server.change_type( diff --git a/lib/ansible/modules/cloud/hcloud/hcloud_volume_facts.py b/lib/ansible/modules/cloud/hcloud/hcloud_volume_facts.py index 838bd6267e7..99311a8ab0b 100644 --- a/lib/ansible/modules/cloud/hcloud/hcloud_volume_facts.py +++ b/lib/ansible/modules/cloud/hcloud/hcloud_volume_facts.py @@ -134,7 +134,7 @@ class AnsibleHcloudVolumeFacts(Hcloud): self.module.params.get("name") )] elif self.module.params.get("label_selector") is not None: - self.hcloud_volume_facts = self.client.servers.get_all( + self.hcloud_volume_facts = self.client.volumes.get_all( label_selector=self.module.params.get("label_selector")) else: self.hcloud_volume_facts = self.client.volumes.get_all() diff --git a/test/integration/targets/hcloud_floating_ip_facts/aliases b/test/integration/targets/hcloud_floating_ip_facts/aliases index 4b3a9b36f86..18dc30b6c31 100644 --- a/test/integration/targets/hcloud_floating_ip_facts/aliases +++ b/test/integration/targets/hcloud_floating_ip_facts/aliases @@ -1,3 +1,2 @@ cloud/hcloud shippable/hcloud/group1 -disabled diff --git a/test/integration/targets/hcloud_floating_ip_facts/tasks/main.yml b/test/integration/targets/hcloud_floating_ip_facts/tasks/main.yml index 39a386cf0b8..a29cc10ff09 100644 --- a/test/integration/targets/hcloud_floating_ip_facts/tasks/main.yml +++ b/test/integration/targets/hcloud_floating_ip_facts/tasks/main.yml @@ -1,51 +1,53 @@ # 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: test gather hcloud image facts +- name: test gather hcloud floating ip facts hcloud_floating_ip_facts: -- name: verify test gather hcloud image facts in check mode +- name: verify test gather hcloud floating ip facts in check mode assert: that: - ansible_facts.hcloud_floating_ip_facts| list | count == 1 -- name: test gather hcloud image facts in check mode +- name: test gather hcloud floating ip facts in check mode hcloud_floating_ip_facts: check_mode: yes -- name: verify test gather hcloud image facts in check mode +- name: verify test gather hcloud floating ip facts in check mode assert: that: - ansible_facts.hcloud_floating_ip_facts| list | count == 1 -- name: test gather hcloud image facts with correct label selector +- name: test gather hcloud floating ip facts with correct label selector hcloud_floating_ip_facts: label_selector: "key=value" -- name: verify test gather hcloud image with correct label selector +- name: verify test gather hcloud floating ip with correct label selector assert: that: - ansible_facts.hcloud_floating_ip_facts|selectattr('description','equalto','{{ hcloud_test_floating_ip_name }}') | list | count == 1 -- name: test gather hcloud image facts with wrong label selector +- name: test gather hcloud floating ip facts with wrong label selector hcloud_floating_ip_facts: label_selector: "key!=value" -- name: verify test gather hcloud image with wrong label selector +- name: verify test gather hcloud floating ip with wrong label selector assert: that: - ansible_facts.hcloud_floating_ip_facts | list | count == 0 -- name: test gather hcloud image facts with correct id +- name: test gather hcloud floating ip facts with correct id hcloud_floating_ip_facts: id: "{{hcloud_test_floating_ip_id}}" -- name: verify test gather hcloud image with correct id +- name: verify test gather hcloud floating ip with correct id assert: that: - ansible_facts.hcloud_floating_ip_facts|selectattr('description','equalto','{{ hcloud_test_floating_ip_name }}') | list | count == 1 -- name: test gather hcloud image facts with wrong id +- name: test gather hcloud floating ip facts with wrong id hcloud_floating_ip_facts: id: "{{hcloud_test_floating_ip_id}}1" -- name: verify test gather hcloud image with wrong id + register: result + ignore_errors: yes +- name: verify test gather hcloud floating ip with wrong id assert: that: - - ansible_facts.hcloud_floating_ip_facts | list | count == 0 + - result is failed diff --git a/test/integration/targets/hcloud_image_facts/aliases b/test/integration/targets/hcloud_image_facts/aliases index 4b3a9b36f86..18dc30b6c31 100644 --- a/test/integration/targets/hcloud_image_facts/aliases +++ b/test/integration/targets/hcloud_image_facts/aliases @@ -1,3 +1,2 @@ cloud/hcloud shippable/hcloud/group1 -disabled diff --git a/test/integration/targets/hcloud_image_facts/tasks/main.yml b/test/integration/targets/hcloud_image_facts/tasks/main.yml index d444dc3164b..b44b08a61fa 100644 --- a/test/integration/targets/hcloud_image_facts/tasks/main.yml +++ b/test/integration/targets/hcloud_image_facts/tasks/main.yml @@ -49,7 +49,9 @@ hcloud_image_facts: id: "{{hcloud_test_image_id}}1" type: snapshot + ignore_errors: yes + register: result - name: verify test gather hcloud image with wrong id assert: that: - - ansible_facts.hcloud_image_facts | list | count == 0 + - result is failed diff --git a/test/integration/targets/hcloud_server/aliases b/test/integration/targets/hcloud_server/aliases index 4b3a9b36f86..18dc30b6c31 100644 --- a/test/integration/targets/hcloud_server/aliases +++ b/test/integration/targets/hcloud_server/aliases @@ -1,3 +1,2 @@ cloud/hcloud shippable/hcloud/group1 -disabled diff --git a/test/integration/targets/hcloud_server/tasks/main.yml b/test/integration/targets/hcloud_server/tasks/main.yml index ce0524d9719..e901ca59d0e 100644 --- a/test/integration/targets/hcloud_server/tasks/main.yml +++ b/test/integration/targets/hcloud_server/tasks/main.yml @@ -239,24 +239,26 @@ - name: test rebuild server hcloud_server: name: "{{ hcloud_server_name }}" + image: ubuntu-18.04 state: rebuild register: result_after_test - name: verify rebuild server assert: that: - - result is changed + - result_after_test is changed - result.hcloud_server.id == result_after_test.hcloud_server.id - name: test rebuild server with check mode hcloud_server: name: "{{ hcloud_server_name }}" + image: ubuntu-18.04 state: rebuild register: result_after_test check_mode: true - name: verify rebuild server with check mode assert: that: - - result is changed + - result_after_test is changed - name: absent server hcloud_server: diff --git a/test/integration/targets/hcloud_server_facts/aliases b/test/integration/targets/hcloud_server_facts/aliases index 965a4decc12..18dc30b6c31 100644 --- a/test/integration/targets/hcloud_server_facts/aliases +++ b/test/integration/targets/hcloud_server_facts/aliases @@ -1,3 +1,2 @@ cloud/hcloud shippable/hcloud/group1 -unstable # tests are unstable because they conflict when run concurrently diff --git a/test/integration/targets/hcloud_server_facts/tasks/main.yml b/test/integration/targets/hcloud_server_facts/tasks/main.yml index d81d0f95252..d67eaef2bc1 100644 --- a/test/integration/targets/hcloud_server_facts/tasks/main.yml +++ b/test/integration/targets/hcloud_server_facts/tasks/main.yml @@ -7,13 +7,6 @@ state: absent register: result -- name: test gather hcloud server facts - empty resources - hcloud_server_facts: -- name: verify test gather hcloud server facts - empty resources - assert: - that: - - ansible_facts.hcloud_server_facts | count == 0 - - name: create server hcloud_server: name: "{{ hcloud_server_name }}" diff --git a/test/integration/targets/hcloud_ssh_key/aliases b/test/integration/targets/hcloud_ssh_key/aliases index 328499983dd..18dc30b6c31 100644 --- a/test/integration/targets/hcloud_ssh_key/aliases +++ b/test/integration/targets/hcloud_ssh_key/aliases @@ -1,3 +1,2 @@ cloud/hcloud shippable/hcloud/group1 -disabled # conflicts with concurrent runs diff --git a/test/integration/targets/hcloud_ssh_key/meta/main.yml b/test/integration/targets/hcloud_ssh_key/meta/main.yml new file mode 100644 index 00000000000..7e4c5b7eb44 --- /dev/null +++ b/test/integration/targets/hcloud_ssh_key/meta/main.yml @@ -0,0 +1,2 @@ +dependencies: + - setup_sshkey diff --git a/test/integration/targets/hcloud_ssh_key/tasks/main.yml b/test/integration/targets/hcloud_ssh_key/tasks/main.yml index 57c2ee01288..f935674684d 100644 --- a/test/integration/targets/hcloud_ssh_key/tasks/main.yml +++ b/test/integration/targets/hcloud_ssh_key/tasks/main.yml @@ -1,21 +1,12 @@ # 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 +- name: verify fail test missing required parameters on create ssh_key assert: that: - result is failed @@ -24,7 +15,7 @@ - name: test create ssh key with check mode hcloud_ssh_key: name: "{{ hcloud_ssh_key_name }}" - public_key: "{{ hcloud_ssh_key_public_key }}" + public_key: "{{ key_material }}" register: result check_mode: yes - name: test create ssh key with check mode @@ -35,7 +26,7 @@ - name: test create ssh key hcloud_ssh_key: name: "{{ hcloud_ssh_key_name }}" - public_key: "{{ hcloud_ssh_key_public_key }}" + public_key: "{{ key_material }}" labels: key: value my-label: label @@ -45,14 +36,13 @@ 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.public_key == "{{ key_material }}" - 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 }}" + public_key: "{{ key_material }}" register: result - name: verify create ssh key idempotence assert: @@ -62,7 +52,7 @@ - name: test update ssh key with check mode hcloud_ssh_key: id: "{{ sshKey.hcloud_ssh_key.id }}" - name: "changed-ssh-key-name" + name: "changed-{{ hcloud_ssh_key_name }}" register: result check_mode: yes - name: test create ssh key with check mode @@ -73,7 +63,7 @@ - name: test update ssh key hcloud_ssh_key: id: "{{ sshKey.hcloud_ssh_key.id }}" - name: "changed-ssh-key-name" + name: "changed-{{ hcloud_ssh_key_name }}" labels: key: value register: result @@ -81,16 +71,16 @@ assert: that: - result is changed - - result.hcloud_ssh_key.name == "changed-ssh-key-name" + - result.hcloud_ssh_key.name == "changed-{{ hcloud_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" + name: "changed-{{ hcloud_ssh_key_name }}" labels: key: value register: result -- name: test update ssh key with same labels +- name: test update ssh key with same labels assert: that: - result is not changed @@ -98,7 +88,7 @@ - name: test update ssh key with other labels hcloud_ssh_key: id: "{{ sshKey.hcloud_ssh_key.id }}" - name: "changed-ssh-key-name" + name: "changed-{{ hcloud_ssh_key_name }}" labels: key: value test: 123 diff --git a/test/integration/targets/hcloud_ssh_key_facts/aliases b/test/integration/targets/hcloud_ssh_key_facts/aliases index 4b3a9b36f86..18dc30b6c31 100644 --- a/test/integration/targets/hcloud_ssh_key_facts/aliases +++ b/test/integration/targets/hcloud_ssh_key_facts/aliases @@ -1,3 +1,2 @@ cloud/hcloud shippable/hcloud/group1 -disabled diff --git a/test/integration/targets/hcloud_ssh_key_facts/defaults/main.yml b/test/integration/targets/hcloud_ssh_key_facts/defaults/main.yml index 3b05f41406a..06c1471ad3a 100644 --- a/test/integration/targets/hcloud_ssh_key_facts/defaults/main.yml +++ b/test/integration/targets/hcloud_ssh_key_facts/defaults/main.yml @@ -1,4 +1,5 @@ # Copyright: (c) 2019, Hetzner Cloud GmbH # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) --- -hcloud_ssh_key_name: "test_ssh_key" +hcloud_prefix: "tests" +hcloud_ssh_key_name: "{{hcloud_prefix}}-ssh_key_facts" diff --git a/test/integration/targets/hcloud_ssh_key_facts/meta/main.yml b/test/integration/targets/hcloud_ssh_key_facts/meta/main.yml new file mode 100644 index 00000000000..7e4c5b7eb44 --- /dev/null +++ b/test/integration/targets/hcloud_ssh_key_facts/meta/main.yml @@ -0,0 +1,2 @@ +dependencies: + - setup_sshkey diff --git a/test/integration/targets/hcloud_ssh_key_facts/tasks/main.yml b/test/integration/targets/hcloud_ssh_key_facts/tasks/main.yml index 79260e18102..8c574f67214 100644 --- a/test/integration/targets/hcloud_ssh_key_facts/tasks/main.yml +++ b/test/integration/targets/hcloud_ssh_key_facts/tasks/main.yml @@ -8,17 +8,10 @@ state: absent register: result -- name: test gather hcloud ssh key facts - empty resources - hcloud_ssh_key_facts: -- name: verify test gather hcloud ssh key facts - empty resources - assert: - that: - - ansible_facts.hcloud_ssh_key_facts | count == 0 - - name: setup test ssh_key hcloud_ssh_key: name: "{{hcloud_ssh_key_name}}" - public_key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGpl/tnk74nnQJxxLAtutUApUZMRJxryKh7VXkNbd4g9 john@example.com" + public_key: "{{ key_material }}" labels: key: value register: result @@ -26,7 +19,7 @@ assert: that: - result is changed - - result.hcloud_ssh_key.public_key == "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGpl/tnk74nnQJxxLAtutUApUZMRJxryKh7VXkNbd4g9 john@example.com" + - result.hcloud_ssh_key.public_key == "{{ key_material }}" - name: test gather hcloud ssh key facts in check mode hcloud_ssh_key_facts: @@ -34,7 +27,7 @@ - name: verify test gather hcloud ssh key facts in check mode assert: that: - - ansible_facts.hcloud_ssh_key_facts| list | count == 1 + - ansible_facts.hcloud_ssh_key_facts| list | count >= 1 - name: test gather hcloud ssh key facts hcloud_ssh_key_facts: @@ -42,7 +35,7 @@ - name: verify test gather hcloud ssh key facts assert: that: - - ansible_facts.hcloud_ssh_key_facts| list | count == 1 + - ansible_facts.hcloud_ssh_key_facts| list | count >= 1 - name: test gather hcloud ssh key facts with correct label selector hcloud_ssh_key_facts: @@ -60,7 +53,6 @@ that: - ansible_facts.hcloud_ssh_key_facts | list | count == 0 - - name: cleanup hcloud_ssh_key: name: "{{hcloud_ssh_key_name}}" diff --git a/test/integration/targets/hcloud_volume/defaults/main.yml b/test/integration/targets/hcloud_volume/defaults/main.yml index ad7469fb296..a8f03b4e571 100644 --- a/test/integration/targets/hcloud_volume/defaults/main.yml +++ b/test/integration/targets/hcloud_volume/defaults/main.yml @@ -3,4 +3,4 @@ --- hcloud_prefix: "tests" hcloud_volume_name: "{{hcloud_prefix}}-integ" -hcloud_server_name: "{{hcloud_prefix}}-integ-server" +hcloud_server_name: "{{hcloud_prefix}}-volume-server" diff --git a/test/integration/targets/hcloud_volume_facts/aliases b/test/integration/targets/hcloud_volume_facts/aliases index 4b3a9b36f86..18dc30b6c31 100644 --- a/test/integration/targets/hcloud_volume_facts/aliases +++ b/test/integration/targets/hcloud_volume_facts/aliases @@ -1,3 +1,2 @@ cloud/hcloud shippable/hcloud/group1 -disabled diff --git a/test/integration/targets/hcloud_volume_facts/defaults/main.yml b/test/integration/targets/hcloud_volume_facts/defaults/main.yml index 5842641c75a..d308c950900 100644 --- a/test/integration/targets/hcloud_volume_facts/defaults/main.yml +++ b/test/integration/targets/hcloud_volume_facts/defaults/main.yml @@ -2,4 +2,4 @@ # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) --- hcloud_prefix: "tests" -hcloud_volume_name: "{{hcloud_prefix}}-integ" +hcloud_volume_name: "{{hcloud_prefix}}-facts" diff --git a/test/integration/targets/hcloud_volume_facts/tasks/main.yml b/test/integration/targets/hcloud_volume_facts/tasks/main.yml index 184534661a3..9eae2e9a1ab 100644 --- a/test/integration/targets/hcloud_volume_facts/tasks/main.yml +++ b/test/integration/targets/hcloud_volume_facts/tasks/main.yml @@ -7,13 +7,6 @@ state: absent register: result -- name: test gather hcloud volume facts - empty resources - hcloud_volume_facts: -- name: verify test gather hcloud volume facts - empty resources - assert: - that: - - ansible_facts.hcloud_volume_facts | count == 0 - - name: setup volume hcloud_volume: name: "{{hcloud_volume_name}}"