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

feat: add support for ARM APIs (#208)

* feat: add architecture fields for image & server type

* feat: filter images by architecture

* feat: select right image by arch on server create & rebuild

* feat(inventory): add architecture field to returned servers

* docs: add changelog for arm features

* chore: prepare v1.11.0
This commit is contained in:
Julian Tölle 2023-04-12 10:43:19 +02:00 committed by GitHub
parent 6a3983c9cd
commit 3c2d4df8bb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 94 additions and 8 deletions

View file

@ -402,12 +402,14 @@ class AnsibleHcloudServer(Hcloud):
required_params=["name", "server_type", "image"]
)
server_type = self._get_server_type()
params = {
"name": self.module.params.get("name"),
"server_type": self._get_server_type(),
"server_type": server_type,
"user_data": self.module.params.get("user_data"),
"labels": self.module.params.get("labels"),
"image": self._get_image(),
"image": self._get_image(server_type),
"placement_group": self._get_placement_group(),
"public_net": ServerCreatePublicNetwork(
enable_ipv4=self.module.params.get("enable_ipv4"),
@ -499,8 +501,8 @@ class AnsibleHcloudServer(Hcloud):
self._mark_as_changed()
self._get_server()
def _get_image(self):
image_resp = self.client.images.get_list(name=self.module.params.get("image"), include_deprecated=True)
def _get_image(self, server_type):
image_resp = self.client.images.get_list(name=self.module.params.get("image"), architecture=server_type.architecture, include_deprecated=True)
images = getattr(image_resp, 'images')
image = None
if images is not None and len(images) > 0:
@ -828,7 +830,7 @@ class AnsibleHcloudServer(Hcloud):
)
try:
if not self.module.check_mode:
image = self._get_image()
image = self._get_image(self.hcloud_server.server_type)
self.client.servers.rebuild(self.hcloud_server, image).wait_until_finished(1000) # When we rebuild the server progress takes some more time.
self._mark_as_changed()