hcloud_load_balancer Allow changing the type of a Load Balancer (#21)

Signed-off-by: Lukas Kämmerling <lukas.kaemmerling@hetzner-cloud.de>
This commit is contained in:
Lukas Kämmerling 2020-08-10 09:58:30 +02:00 committed by GitHub
parent 19257f6d43
commit 9deba9db7a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 38 additions and 0 deletions

View file

@ -0,0 +1,2 @@
minor_changes:
- hcloud_load_balancer Allow changing the type of a Load Balancer

View file

@ -243,6 +243,18 @@ class AnsibleHcloudLoadBalancer(Hcloud):
else:
self.hcloud_load_balancer.enable_public_interface().wait_until_finished()
self._mark_as_changed()
load_balancer_type = self.module.params.get("load_balancer_type")
if load_balancer_type is not None and self.hcloud_load_balancer.load_balancer_type.name != load_balancer_type:
new_load_balancer_type = self.client.server_types.get_by_name(load_balancer_type)
if not new_load_balancer_type:
self.module.fail_json(msg="unknown load balancer type")
if not self.module.check_mode:
self.hcloud_load_balancer.change_type(
load_balancer_type=new_load_balancer_type,
).wait_until_finished(max_retries=1000)
self._mark_as_changed()
self._get_load_balancer()
except APIException as e:
self.module.fail_json(msg=e.message)

View file

@ -60,6 +60,29 @@
that:
- result is not changed
- name: test change Load Balancer type
hcloud_load_balancer:
name: "{{ hcloud_load_balancer_name }}"
load_balancer_type: lb21
state: present
register: result_after_test
ignore_errors: true
- name: verify change Load Balancer type
assert:
that:
- result_after_test is changed
- result_after_test.hcloud_load_balancer.load_balancer_type == "lb21"
- name: test Load Balancer without type set to be idempotent
hcloud_load_balancer:
name: "{{hcloud_load_balancer_name}}"
register: result_after_test
- name: verify test Load Balancer without type set to be idempotent
assert:
that:
- result_after_test is not changed
- result_after_test.hcloud_load_balancer.load_balancer_type == "lb21"
- name: test update Load Balancer protection
hcloud_load_balancer:
name: "{{ hcloud_load_balancer_name }}"

View file

@ -1,2 +1,3 @@
cloud/hcloud
shippable/hcloud/group2
disabled