From fd7da36d46b0b4af774484634ae7328e5504777a Mon Sep 17 00:00:00 2001 From: phm07 <22707808+phm07@users.noreply.github.com> Date: Thu, 22 Jan 2026 16:55:46 +0100 Subject: [PATCH 1/2] feat(servers): allow setting user_data for rebuild --- hcloud/servers/client.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/hcloud/servers/client.py b/hcloud/servers/client.py index cd3c2b07..f954841e 100644 --- a/hcloud/servers/client.py +++ b/hcloud/servers/client.py @@ -358,14 +358,16 @@ def create_image( def rebuild( self, image: Image | BoundImage, + user_data: str | None = None, # pylint: disable=unused-argument **kwargs: Any, ) -> RebuildResponse: """Rebuilds a server overwriting its disk with the content of an image, thereby destroying all data on the target server. :param image: Image to use for the rebuilt server + :param user_data: Cloud-Init user data to use during Server rebuild (optional) """ - return self._client.rebuild(self, image=image) + return self._client.rebuild(self, image=image, user_data=user_data) def change_type( self, @@ -1036,6 +1038,7 @@ def rebuild( self, server: Server | BoundServer, image: Image | BoundImage, + user_data: str | None = None, # pylint: disable=unused-argument **kwargs: Any, ) -> RebuildResponse: @@ -1043,8 +1046,12 @@ def rebuild( :param server: Server to rebuild :param image: Image to use for the rebuilt server + :param user_data: Cloud-Init user data to use during Server rebuild (optional) """ data: dict[str, Any] = {"image": image.id_or_name} + if user_data is not None: + data.update({"user_data": user_data}) + response = self._client.request( url=f"{self._base_url}/{server.id}/actions/rebuild", method="POST", From b85d00cd06e3cc1b270edee114e3321fe2a55894 Mon Sep 17 00:00:00 2001 From: "Jonas L." Date: Fri, 23 Jan 2026 09:28:00 +0100 Subject: [PATCH 2/2] Apply suggestion from @jooola --- hcloud/servers/client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hcloud/servers/client.py b/hcloud/servers/client.py index f954841e..1128f420 100644 --- a/hcloud/servers/client.py +++ b/hcloud/servers/client.py @@ -1050,7 +1050,7 @@ def rebuild( """ data: dict[str, Any] = {"image": image.id_or_name} if user_data is not None: - data.update({"user_data": user_data}) + data["user_data"] = user_data response = self._client.request( url=f"{self._base_url}/{server.id}/actions/rebuild",