1
0
Fork 0
mirror of https://github.com/ansible-collections/hetzner.hcloud.git synced 2026-02-04 08:01:49 +00:00

Allow updating hcloud_server_network (#42)

Signed-off-by: Lukas Kämmerling <lukas.kaemmerling@hetzner-cloud.de>
This commit is contained in:
Lukas Kämmerling 2020-11-30 09:42:33 +01:00 committed by GitHub
parent 0617bc65f8
commit 857a9ce526
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 55 additions and 0 deletions

View file

@ -173,11 +173,31 @@ class AnsibleHcloudServerNetwork(Hcloud):
self._get_server_and_network()
self._get_server_network()
def _update_server_network(self):
params = {
"network": self.hcloud_network
}
alias_ips = self.module.params.get("alias_ips")
if alias_ips is not None and self.hcloud_server_network.alias_ips.sort() != alias_ips.sort():
params["alias_ips"] = alias_ips
if not self.module.check_mode:
try:
self.hcloud_server.change_alias_ips(**params).wait_until_finished()
except APIException as e:
self.module.fail_json(msg=e.message)
self._mark_as_changed()
self._get_server_and_network()
self._get_server_network()
def present_server_network(self):
self._get_server_and_network()
self._get_server_network()
if self.hcloud_server_network is None:
self._create_server_network()
else:
self._update_server_network()
def delete_server_network(self):
self._get_server_and_network()

View file

@ -142,6 +142,41 @@
- 'serverNetwork.hcloud_server_network.alias_ips[0] == "10.0.2.3"'
- 'serverNetwork.hcloud_server_network.alias_ips[1] == "10.0.1.2"'
- name: test update server network with alias ips
hcloud_server_network:
network: "{{ hcloud_network_name }}"
server: "{{hcloud_server_name}}"
ip: "10.0.0.2"
alias_ips:
- "10.0.2.3"
- "10.0.3.1"
state: present
register: serverNetwork
- name: verify create server network with alias ips
assert:
that:
- serverNetwork is changed
- serverNetwork.hcloud_server_network.network == hcloud_network_name
- serverNetwork.hcloud_server_network.server == hcloud_server_name
- serverNetwork.hcloud_server_network.ip == "10.0.0.2"
- 'serverNetwork.hcloud_server_network.alias_ips[0] == "10.0.2.3"'
- 'serverNetwork.hcloud_server_network.alias_ips[1] == "10.0.3.1"'
- name: test update server network with alias ips idempotency
hcloud_server_network:
network: "{{ hcloud_network_name }}"
server: "{{hcloud_server_name}}"
ip: "10.0.0.2"
alias_ips:
- "10.0.2.3"
- "10.0.3.1"
state: present
register: serverNetwork
- name: verify create server network with alias ips idempotency
assert:
that:
- serverNetwork is not changed
- name: cleanup create server network with alias ips
hcloud_server_network:
network: "{{ hcloud_network_name }}"