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:
parent
0617bc65f8
commit
857a9ce526
2 changed files with 55 additions and 0 deletions
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue