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

Reply via email to