From 4ac317239cf3db6b5ca5915aa16f81418a676d3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Moser?= Date: Wed, 6 Mar 2019 16:22:15 +0100 Subject: [PATCH] cloudscale_server: fix missing param use_private_network (#53381) --- .../cloud/cloudscale/cloudscale_server.py | 18 ++++-------- .../targets/cloudscale_server/tasks/main.yml | 29 +++++++++++++++---- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/lib/ansible/modules/cloud/cloudscale/cloudscale_server.py b/lib/ansible/modules/cloud/cloudscale/cloudscale_server.py index abc8ace0f22..8433dc7d52b 100644 --- a/lib/ansible/modules/cloud/cloudscale/cloudscale_server.py +++ b/lib/ansible/modules/cloud/cloudscale/cloudscale_server.py @@ -377,19 +377,11 @@ class AnsibleCloudscaleServer(AnsibleCloudscaleBase): self._result['changed'] = True required_params = ('name', 'ssh_keys', 'image', 'flavor') self._module.fail_on_missing_params(required_params) - params = self._module.params - data = { - 'name': params['name'], - 'image': params['image'], - 'flavor': params['flavor'], - 'volume_size_gb': params['volume_size_gb'], - 'bulk_volume_size_gb': params['bulk_volume_size_gb'], - 'ssh_keys': params['ssh_keys'], - 'use_public_network': params['use_public_network'], - 'use_ipv6': params['use_ipv6'], - 'anti_affinity_with': params['anti_affinity_with'], - 'user_data': params['user_data'], - } + + data = deepcopy(self._module.params) + for i in ('uuid', 'state', 'force', 'api_timeout', 'api_token'): + del data[i] + self._result['diff']['before'] = self._init_server_container() self._result['diff']['after'] = deepcopy(data) if not self._module.check_mode: diff --git a/test/integration/targets/cloudscale_server/tasks/main.yml b/test/integration/targets/cloudscale_server/tasks/main.yml index ad2c8ee8d9f..f784ea6af69 100644 --- a/test/integration/targets/cloudscale_server/tasks/main.yml +++ b/test/integration/targets/cloudscale_server/tasks/main.yml @@ -186,48 +186,65 @@ - server.flavor.slug == '{{ cloudscale_test_flavor_2 }}' - server.name == '{{ cloudscale_resource_prefix }}-test-renamed' -- name: Test create server stopped in check mode +- name: Remember uuid of running server for anti affinity + set_fact: + running_server_uuid: '{{ server.uuid }}' + +- name: Test create server stopped in anti affinity and private network only in check mode cloudscale_server: name: '{{ cloudscale_resource_prefix }}-test-stopped' flavor: '{{ cloudscale_test_flavor }}' image: '{{ cloudscale_test_image }}' ssh_keys: '{{ cloudscale_test_ssh_key }}' + anti_affinity_with: '{{ running_server_uuid }}' + use_public_network: no + use_private_network: yes state: stopped check_mode: yes register: server_stopped -- name: Verify create server stopped +- name: Verify create server stopped in anti affinity and private network only in check mode assert: that: - server_stopped is changed - server_stopped.state == 'absent' -- name: Test create server stopped +- name: Test create server stopped in anti affinity and private network only cloudscale_server: name: '{{ cloudscale_resource_prefix }}-test-stopped' flavor: '{{ cloudscale_test_flavor }}' image: '{{ cloudscale_test_image }}' ssh_keys: '{{ cloudscale_test_ssh_key }}' + anti_affinity_with: '{{ running_server_uuid }}' + use_public_network: no + use_private_network: yes state: stopped register: server_stopped -- name: Verify create server stopped +- name: Verify create server stopped in anti affinity and private network only assert: that: - server_stopped is changed - server_stopped.state == 'stopped' + - server_stopped.anti_affinity_with.0.uuid == running_server_uuid + - server_stopped.interfaces.0.type == 'private' -- name: Test create server stopped idempotence +- name: Test create server stopped in anti affinity and private network only idempotence cloudscale_server: name: '{{ cloudscale_resource_prefix }}-test-stopped' flavor: '{{ cloudscale_test_flavor }}' image: '{{ cloudscale_test_image }}' ssh_keys: '{{ cloudscale_test_ssh_key }}' + anti_affinity_with: '{{ running_server_uuid }}' + use_public_network: no + use_private_network: yes state: stopped register: server_stopped -- name: Verify create server stopped idempotence +- name: Verify create server stopped in anti affinity and private network only idempotence assert: that: - server_stopped is not changed - server_stopped.state == 'stopped' + - server_stopped.anti_affinity_with.0.uuid == running_server_uuid + - server_stopped.interfaces.0.type == 'private' - name: Test create server failure without required parameters cloudscale_server: