Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-hcloud for openSUSE:Factory checked in at 2026-05-18 17:46:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-hcloud (Old) and /work/SRC/openSUSE:Factory/.python-hcloud.new.1966 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-hcloud" Mon May 18 17:46:44 2026 rev:20 rq:1353606 version:2.20.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-hcloud/python-hcloud.changes 2026-05-04 12:58:21.837448425 +0200 +++ /work/SRC/openSUSE:Factory/.python-hcloud.new.1966/python-hcloud.changes 2026-05-18 17:46:49.465346436 +0200 @@ -1,0 +2,8 @@ +Sun May 17 18:48:39 UTC 2026 - Dirk Müller <[email protected]> + +- update to 2.20.0: + * HTTP Services now support the field `timeout_idle`, which + controls the time a HTTP connection is allowed to idle before + it is being dropped. + +------------------------------------------------------------------- Old: ---- hcloud-2.19.0.tar.gz New: ---- hcloud-2.20.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-hcloud.spec ++++++ --- /var/tmp/diff_new_pack.D4SjyT/_old 2026-05-18 17:46:49.989368090 +0200 +++ /var/tmp/diff_new_pack.D4SjyT/_new 2026-05-18 17:46:49.989368090 +0200 @@ -18,7 +18,7 @@ %{?sle15_python_module_pythons} Name: python-hcloud -Version: 2.19.0 +Version: 2.20.0 Release: 0 Summary: Hetzner Cloud Python library License: MIT ++++++ hcloud-2.19.0.tar.gz -> hcloud-2.20.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-2.19.0/CHANGELOG.md new/hcloud-2.20.0/CHANGELOG.md --- old/hcloud-2.19.0/CHANGELOG.md 2026-04-28 14:01:22.000000000 +0200 +++ new/hcloud-2.20.0/CHANGELOG.md 2026-05-07 16:27:46.000000000 +0200 @@ -1,5 +1,17 @@ # Changelog +## [v2.20.0](https://github.com/hetznercloud/hcloud-python/releases/tag/v2.20.0) + +### Load Balancer HTTP Services now support `timeout_idle` + +HTTP Services now support the field `timeout_idle`, which controls the time a HTTP connection is allowed to idle before it is being dropped. + +See the [changelog](https://docs.hetzner.cloud/changelog#2026-04-30-load-balancers-http-idle-timeout-can-now-be-configured) for more information. + +### Features + +- **load-balancer**: support `timeout_idle` http service field (#649) + ## [v2.19.0](https://github.com/hetznercloud/hcloud-python/releases/tag/v2.19.0) ### Primary IPs `assignee_type` behavior change diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-2.19.0/PKG-INFO new/hcloud-2.20.0/PKG-INFO --- old/hcloud-2.19.0/PKG-INFO 2026-04-28 14:01:40.619326800 +0200 +++ new/hcloud-2.20.0/PKG-INFO 2026-05-07 16:27:54.505429700 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: hcloud -Version: 2.19.0 +Version: 2.20.0 Summary: Official Hetzner Cloud python library Home-page: https://github.com/hetznercloud/hcloud-python Author: Hetzner Cloud GmbH diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-2.19.0/hcloud/_version.py new/hcloud-2.20.0/hcloud/_version.py --- old/hcloud-2.19.0/hcloud/_version.py 2026-04-28 14:01:22.000000000 +0200 +++ new/hcloud-2.20.0/hcloud/_version.py 2026-05-07 16:27:46.000000000 +0200 @@ -1,3 +1,3 @@ from __future__ import annotations -__version__ = "2.19.0" # x-releaser-pleaser-version +__version__ = "2.20.0" # x-releaser-pleaser-version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-2.19.0/hcloud/load_balancers/client.py new/hcloud-2.20.0/hcloud/load_balancers/client.py --- old/hcloud-2.19.0/hcloud/load_balancers/client.py 2026-04-28 14:01:22.000000000 +0200 +++ new/hcloud-2.20.0/hcloud/load_balancers/client.py 2026-05-07 16:27:46.000000000 +0200 @@ -155,6 +155,7 @@ redirect_http=service["http"]["redirect_http"], cookie_name=service["http"]["cookie_name"], cookie_lifetime=service["http"]["cookie_lifetime"], + timeout_idle=service["http"]["timeout_idle"], ) tmp_service.http.certificates = [ BoundCertificate( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-2.19.0/hcloud/load_balancers/domain.py new/hcloud-2.20.0/hcloud/load_balancers/domain.py --- old/hcloud-2.19.0/hcloud/load_balancers/domain.py 2026-04-28 14:01:22.000000000 +0200 +++ new/hcloud-2.20.0/hcloud/load_balancers/domain.py 2026-05-07 16:27:46.000000000 +0200 @@ -212,6 +212,8 @@ http["redirect_http"] = self.http.redirect_http if self.http.sticky_sessions is not None: http["sticky_sessions"] = self.http.sticky_sessions + if self.http.timeout_idle is not None: + http["timeout_idle"] = self.http.timeout_idle http["certificates"] = [ certificate.id for certificate in self.http.certificates or [] @@ -272,6 +274,8 @@ Redirect traffic from http port 80 to port 443 :param sticky_sessions: bool Use sticky sessions. Only available if protocol is "http" or "https". + :param timeout_idle: int + Idle timeout in seconds for HTTP connections. Must be between 30 and 300 seconds. """ __api_properties__ = ( @@ -280,6 +284,7 @@ "certificates", "redirect_http", "sticky_sessions", + "timeout_idle", ) __slots__ = __api_properties__ @@ -290,12 +295,14 @@ certificates: list[BoundCertificate] | None = None, redirect_http: bool | None = None, sticky_sessions: bool | None = None, + timeout_idle: int | None = None, ): self.cookie_name = cookie_name self.cookie_lifetime = cookie_lifetime self.certificates = certificates self.redirect_http = redirect_http self.sticky_sessions = sticky_sessions + self.timeout_idle = timeout_idle class LoadBalancerHealthCheck(BaseDomain): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-2.19.0/hcloud.egg-info/PKG-INFO new/hcloud-2.20.0/hcloud.egg-info/PKG-INFO --- old/hcloud-2.19.0/hcloud.egg-info/PKG-INFO 2026-04-28 14:01:40.000000000 +0200 +++ new/hcloud-2.20.0/hcloud.egg-info/PKG-INFO 2026-05-07 16:27:54.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: hcloud -Version: 2.19.0 +Version: 2.20.0 Summary: Official Hetzner Cloud python library Home-page: https://github.com/hetznercloud/hcloud-python Author: Hetzner Cloud GmbH diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-2.19.0/setup.py new/hcloud-2.20.0/setup.py --- old/hcloud-2.19.0/setup.py 2026-04-28 14:01:22.000000000 +0200 +++ new/hcloud-2.20.0/setup.py 2026-05-07 16:27:46.000000000 +0200 @@ -7,7 +7,7 @@ setup( name="hcloud", - version="2.19.0", # x-releaser-pleaser-version + version="2.20.0", # x-releaser-pleaser-version keywords="hcloud hetzner cloud", description="Official Hetzner Cloud python library", long_description=readme, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-2.19.0/tests/unit/load_balancers/conftest.py new/hcloud-2.20.0/tests/unit/load_balancers/conftest.py --- old/hcloud-2.19.0/tests/unit/load_balancers/conftest.py 2026-04-28 14:01:22.000000000 +0200 +++ new/hcloud-2.20.0/tests/unit/load_balancers/conftest.py 2026-05-07 16:27:46.000000000 +0200 @@ -62,6 +62,7 @@ "certificates": [897], "redirect_http": True, "sticky_sessions": True, + "timeout_idle": 60, }, "health_check": { "protocol": "http", @@ -155,6 +156,7 @@ "certificates": [897], "redirect_http": True, "sticky_sessions": True, + "timeout_idle": 60, }, "health_check": { "protocol": "http", @@ -253,6 +255,7 @@ "certificates": [897], "redirect_http": True, "sticky_sessions": True, + "timeout_idle": 60, }, "health_check": { "protocol": "http", @@ -344,6 +347,7 @@ "cookie_lifetime": 300, "certificates": [897], "redirect_http": True, + "timeout_idle": 60, }, "health_check": { "protocol": "http", @@ -428,6 +432,7 @@ "cookie_lifetime": 300, "certificates": [897], "redirect_http": True, + "timeout_idle": 60, }, "health_check": { "protocol": "http", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-2.19.0/tests/unit/load_balancers/test_client.py new/hcloud-2.20.0/tests/unit/load_balancers/test_client.py --- old/hcloud-2.19.0/tests/unit/load_balancers/test_client.py 2026-04-28 14:01:22.000000000 +0200 +++ new/hcloud-2.20.0/tests/unit/load_balancers/test_client.py 2026-05-07 16:27:46.000000000 +0200 @@ -13,6 +13,7 @@ LoadBalancerHealthCheck, LoadBalancersClient, LoadBalancerService, + LoadBalancerServiceHttp, LoadBalancerTarget, LoadBalancerTargetIP, LoadBalancerTargetLabelSelector, @@ -383,13 +384,38 @@ ): request_mock.return_value = response_add_service - service = LoadBalancerService(listen_port=80, protocol="http") + service = LoadBalancerService( + listen_port=80, + protocol="http", + destination_port=8080, + proxyprotocol=False, + http=LoadBalancerServiceHttp( + cookie_name="HCLBSTICKY", + cookie_lifetime=300, + redirect_http=True, + sticky_sessions=True, + timeout_idle=60, + ), + ) action = resource_client.add_service(load_balancer, service) request_mock.assert_called_with( method="POST", url="/load_balancers/1/actions/add_service", - json={"protocol": "http", "listen_port": 80}, + json={ + "protocol": "http", + "listen_port": 80, + "destination_port": 8080, + "proxyprotocol": False, + "http": { + "cookie_name": "HCLBSTICKY", + "cookie_lifetime": 300, + "redirect_http": True, + "sticky_sessions": True, + "timeout_idle": 60, + "certificates": [], + }, + }, ) assert action.id == 13
