1
0
Fork 0
mirror of https://github.com/ansible-collections/hetzner.hcloud.git synced 2026-02-03 23:51:48 +00:00

chore(deps): update dependency hcloud to v2.15.0 (#783)

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [hcloud](https://redirect.github.com/hetznercloud/hcloud-python)
([changelog](https://redirect.github.com/hetznercloud/hcloud-python/blob/main/CHANGELOG.md))
| `2.13.0` → `2.15.0` |
![age](https://developer.mend.io/api/mc/badges/age/pypi/hcloud/2.15.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/hcloud/2.13.0/2.15.0?slim=true)
|

---

### Release Notes

<details>
<summary>hetznercloud/hcloud-python (hcloud)</summary>

###
[`v2.15.0`](https://redirect.github.com/hetznercloud/hcloud-python/blob/HEAD/CHANGELOG.md#v2150)

[Compare
Source](https://redirect.github.com/hetznercloud/hcloud-python/compare/v2.14.0...v2.15.0)

##### Features

- add name to Storage Box Subaccount
([#&#8203;621](https://redirect.github.com/hetznercloud/hcloud-python/issues/621))

###
[`v2.14.0`](https://redirect.github.com/hetznercloud/hcloud-python/blob/HEAD/CHANGELOG.md#v2140)

[Compare
Source](https://redirect.github.com/hetznercloud/hcloud-python/compare/v2.13.0...v2.14.0)

##### Features

- retry requests when the api returns a `timeout` error
([#&#8203;617](https://redirect.github.com/hetznercloud/hcloud-python/issues/617))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/ansible-collections/hetzner.hcloud).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43NC41IiwidXBkYXRlZEluVmVyIjoiNDIuNzQuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: jo <ljonas@riseup.net>
This commit is contained in:
renovate[bot] 2026-01-16 13:26:24 +01:00 committed by GitHub
parent 2f47225bf4
commit 09bff84a32
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 72 additions and 2 deletions

View file

@ -132,6 +132,7 @@ class Client:
- ``conflict`` - ``conflict``
- ``rate_limit_exceeded`` - ``rate_limit_exceeded``
- ``timeout``
Changes to the retry policy might occur between releases, and will not be considered Changes to the retry policy might occur between releases, and will not be considered
breaking changes. breaking changes.
@ -422,6 +423,7 @@ class ClientBase:
return exception.code in ( return exception.code in (
"rate_limit_exceeded", "rate_limit_exceeded",
"conflict", "conflict",
"timeout",
) )
if isinstance(exception.code, int): if isinstance(exception.code, int):

View file

@ -1,3 +1,3 @@
from __future__ import annotations from __future__ import annotations
__version__ = "2.13.0" # x-releaser-pleaser-version __version__ = "2.15.0" # x-releaser-pleaser-version

View file

@ -452,6 +452,22 @@ class BoundStorageBox(BoundModelBase[StorageBox], StorageBox):
""" """
return self._client.get_subaccount_by_id(self, id=id) return self._client.get_subaccount_by_id(self, id=id)
def get_subaccount_by_name(
self,
name: str,
) -> BoundStorageBoxSubaccount | None:
"""
Returns a single Subaccount from a Storage Box.
See https://docs.hetzner.cloud/reference/hetzner#storage-box-subaccounts-list-subaccounts
:param name: Name of the Subaccount.
Experimental:
Storage Box support is experimental, breaking changes may occur within minor releases.
"""
return self._client.get_subaccount_by_name(self, name=name)
def get_subaccount_by_username( def get_subaccount_by_username(
self, self,
username: str, username: str,
@ -471,6 +487,7 @@ class BoundStorageBox(BoundModelBase[StorageBox], StorageBox):
def get_subaccount_list( def get_subaccount_list(
self, self,
*, *,
name: str | None = None,
username: str | None = None, username: str | None = None,
label_selector: str | None = None, label_selector: str | None = None,
sort: list[str] | None = None, sort: list[str] | None = None,
@ -480,6 +497,7 @@ class BoundStorageBox(BoundModelBase[StorageBox], StorageBox):
See https://docs.hetzner.cloud/reference/hetzner#storage-box-subaccounts-list-subaccounts See https://docs.hetzner.cloud/reference/hetzner#storage-box-subaccounts-list-subaccounts
:param name: Filter resources by their name. The response will only contain the resources matching exactly the specified name.
:param username: Filter resources by their username. The response will only contain the resources matching exactly the specified username. :param username: Filter resources by their username. The response will only contain the resources matching exactly the specified username.
:param label_selector: Filter resources by labels. The response will only contain resources matching the label selector. :param label_selector: Filter resources by labels. The response will only contain resources matching the label selector.
:param sort: Sort resources by field and direction. :param sort: Sort resources by field and direction.
@ -489,6 +507,7 @@ class BoundStorageBox(BoundModelBase[StorageBox], StorageBox):
""" """
return self._client.get_subaccount_list( return self._client.get_subaccount_list(
self, self,
name=name,
username=username, username=username,
label_selector=label_selector, label_selector=label_selector,
sort=sort, sort=sort,
@ -497,6 +516,7 @@ class BoundStorageBox(BoundModelBase[StorageBox], StorageBox):
def get_subaccount_all( def get_subaccount_all(
self, self,
*, *,
name: str | None = None,
username: str | None = None, username: str | None = None,
label_selector: str | None = None, label_selector: str | None = None,
sort: list[str] | None = None, sort: list[str] | None = None,
@ -506,6 +526,7 @@ class BoundStorageBox(BoundModelBase[StorageBox], StorageBox):
See https://docs.hetzner.cloud/reference/hetzner#storage-box-subaccounts-list-subaccounts See https://docs.hetzner.cloud/reference/hetzner#storage-box-subaccounts-list-subaccounts
:param name: Filter resources by their name. The response will only contain the resources matching exactly the specified name.
:param username: Filter resources by their username. The response will only contain the resources matching exactly the specified username. :param username: Filter resources by their username. The response will only contain the resources matching exactly the specified username.
:param label_selector: Filter resources by labels. The response will only contain resources matching the label selector. :param label_selector: Filter resources by labels. The response will only contain resources matching the label selector.
:param sort: Sort resources by field and direction. :param sort: Sort resources by field and direction.
@ -515,6 +536,7 @@ class BoundStorageBox(BoundModelBase[StorageBox], StorageBox):
""" """
return self._client.get_subaccount_all( return self._client.get_subaccount_all(
self, self,
name=name,
username=username, username=username,
label_selector=label_selector, label_selector=label_selector,
sort=sort, sort=sort,
@ -523,6 +545,7 @@ class BoundStorageBox(BoundModelBase[StorageBox], StorageBox):
def create_subaccount( def create_subaccount(
self, self,
*, *,
name: str | None = None,
home_directory: str, home_directory: str,
password: str, password: str,
access_settings: StorageBoxSubaccountAccessSettings | None = None, access_settings: StorageBoxSubaccountAccessSettings | None = None,
@ -535,6 +558,7 @@ class BoundStorageBox(BoundModelBase[StorageBox], StorageBox):
See https://docs.hetzner.cloud/reference/hetzner#storage-box-subaccounts-create-a-subaccount See https://docs.hetzner.cloud/reference/hetzner#storage-box-subaccounts-create-a-subaccount
:param storage_box: Storage Box to create a Subaccount for. :param storage_box: Storage Box to create a Subaccount for.
:param name: Name of the Subaccount.
:param home_directory: Home directory of the Subaccount. :param home_directory: Home directory of the Subaccount.
:param password: Password of the Subaccount. :param password: Password of the Subaccount.
:param access_settings: Access settings of the Subaccount. :param access_settings: Access settings of the Subaccount.
@ -546,6 +570,7 @@ class BoundStorageBox(BoundModelBase[StorageBox], StorageBox):
""" """
return self._client.create_subaccount( return self._client.create_subaccount(
self, self,
name=name,
home_directory=home_directory, home_directory=home_directory,
password=password, password=password,
access_settings=access_settings, access_settings=access_settings,
@ -658,6 +683,7 @@ class BoundStorageBoxSubaccount(
def update( def update(
self, self,
*, *,
name: str | None = None,
description: str | None = None, description: str | None = None,
labels: dict[str, str] | None = None, labels: dict[str, str] | None = None,
) -> BoundStorageBoxSubaccount: ) -> BoundStorageBoxSubaccount:
@ -666,6 +692,7 @@ class BoundStorageBoxSubaccount(
See https://docs.hetzner.cloud/reference/hetzner#storage-box-subaccounts-update-a-subaccount See https://docs.hetzner.cloud/reference/hetzner#storage-box-subaccounts-update-a-subaccount
:param name: Name of the Subaccount.
:param description: Description of the Subaccount. :param description: Description of the Subaccount.
:param labels: User-defined labels (key/value pairs) for the Subaccount. :param labels: User-defined labels (key/value pairs) for the Subaccount.
@ -674,6 +701,7 @@ class BoundStorageBoxSubaccount(
""" """
return self._client.update_subaccount( return self._client.update_subaccount(
self, self,
name=name,
description=description, description=description,
labels=labels, labels=labels,
) )
@ -1510,6 +1538,28 @@ class StorageBoxesClient(
) )
return BoundStorageBoxSubaccount(self, response["subaccount"]) return BoundStorageBoxSubaccount(self, response["subaccount"])
def get_subaccount_by_name(
self,
storage_box: StorageBox | BoundStorageBox,
name: str,
) -> BoundStorageBoxSubaccount | None:
"""
Returns a single Subaccount from a Storage Box.
See https://docs.hetzner.cloud/reference/hetzner#storage-box-subaccounts-list-subaccounts
:param storage_box: Storage Box to get the Subaccount from.
:param name: Name of the Subaccount.
Experimental:
Storage Box support is experimental, breaking changes may occur within minor releases.
"""
return self._get_first_by(
self.get_subaccount_list,
storage_box,
name=name,
)
def get_subaccount_by_username( def get_subaccount_by_username(
self, self,
storage_box: StorageBox | BoundStorageBox, storage_box: StorageBox | BoundStorageBox,
@ -1536,6 +1586,7 @@ class StorageBoxesClient(
self, self,
storage_box: StorageBox | BoundStorageBox, storage_box: StorageBox | BoundStorageBox,
*, *,
name: str | None = None,
username: str | None = None, username: str | None = None,
label_selector: str | None = None, label_selector: str | None = None,
sort: list[str] | None = None, sort: list[str] | None = None,
@ -1546,6 +1597,7 @@ class StorageBoxesClient(
See https://docs.hetzner.cloud/reference/hetzner#storage-box-subaccounts-list-subaccounts See https://docs.hetzner.cloud/reference/hetzner#storage-box-subaccounts-list-subaccounts
:param storage_box: Storage Box to get the Subaccount from. :param storage_box: Storage Box to get the Subaccount from.
:param name: Filter resources by their name. The response will only contain the resources matching exactly the specified name.
:param username: Filter resources by their username. The response will only contain the resources matching exactly the specified username. :param username: Filter resources by their username. The response will only contain the resources matching exactly the specified username.
:param label_selector: Filter resources by labels. The response will only contain resources matching the label selector. :param label_selector: Filter resources by labels. The response will only contain resources matching the label selector.
:param sort: Sort resources by field and direction. :param sort: Sort resources by field and direction.
@ -1554,6 +1606,8 @@ class StorageBoxesClient(
Storage Box support is experimental, breaking changes may occur within minor releases. Storage Box support is experimental, breaking changes may occur within minor releases.
""" """
params: dict[str, Any] = {} params: dict[str, Any] = {}
if name is not None:
params["name"] = name
if username is not None: if username is not None:
params["username"] = username params["username"] = username
if label_selector is not None: if label_selector is not None:
@ -1578,6 +1632,7 @@ class StorageBoxesClient(
self, self,
storage_box: StorageBox | BoundStorageBox, storage_box: StorageBox | BoundStorageBox,
*, *,
name: str | None = None,
username: str | None = None, username: str | None = None,
label_selector: str | None = None, label_selector: str | None = None,
sort: list[str] | None = None, sort: list[str] | None = None,
@ -1588,6 +1643,7 @@ class StorageBoxesClient(
See https://docs.hetzner.cloud/reference/hetzner#storage-box-subaccounts-list-subaccounts See https://docs.hetzner.cloud/reference/hetzner#storage-box-subaccounts-list-subaccounts
:param storage_box: Storage Box to get the Subaccount from. :param storage_box: Storage Box to get the Subaccount from.
:param name: Filter resources by their name. The response will only contain the resources matching exactly the specified name.
:param username: Filter resources by their username. The response will only contain the resources matching exactly the specified username. :param username: Filter resources by their username. The response will only contain the resources matching exactly the specified username.
:param label_selector: Filter resources by labels. The response will only contain resources matching the label selector. :param label_selector: Filter resources by labels. The response will only contain resources matching the label selector.
:param sort: Sort resources by field and direction. :param sort: Sort resources by field and direction.
@ -1598,6 +1654,7 @@ class StorageBoxesClient(
# The endpoint does not have pagination, forward to the list method. # The endpoint does not have pagination, forward to the list method.
result, _ = self.get_subaccount_list( result, _ = self.get_subaccount_list(
storage_box, storage_box,
name=name,
username=username, username=username,
label_selector=label_selector, label_selector=label_selector,
sort=sort, sort=sort,
@ -1608,6 +1665,7 @@ class StorageBoxesClient(
self, self,
storage_box: StorageBox | BoundStorageBox, storage_box: StorageBox | BoundStorageBox,
*, *,
name: str | None = None,
home_directory: str, home_directory: str,
password: str, password: str,
access_settings: StorageBoxSubaccountAccessSettings | None = None, access_settings: StorageBoxSubaccountAccessSettings | None = None,
@ -1620,6 +1678,7 @@ class StorageBoxesClient(
See https://docs.hetzner.cloud/reference/hetzner#storage-box-subaccounts-create-a-subaccount See https://docs.hetzner.cloud/reference/hetzner#storage-box-subaccounts-create-a-subaccount
:param storage_box: Storage Box to create a Subaccount for. :param storage_box: Storage Box to create a Subaccount for.
:param name: Name of the Subaccount.
:param home_directory: Home directory of the Subaccount. :param home_directory: Home directory of the Subaccount.
:param password: Password of the Subaccount. :param password: Password of the Subaccount.
:param access_settings: Access settings of the Subaccount. :param access_settings: Access settings of the Subaccount.
@ -1633,6 +1692,8 @@ class StorageBoxesClient(
"home_directory": home_directory, "home_directory": home_directory,
"password": password, "password": password,
} }
if name is not None:
data["name"] = name
if access_settings is not None: if access_settings is not None:
data["access_settings"] = access_settings.to_payload() data["access_settings"] = access_settings.to_payload()
if description is not None: if description is not None:
@ -1659,6 +1720,7 @@ class StorageBoxesClient(
self, self,
subaccount: StorageBoxSubaccount | BoundStorageBoxSubaccount, subaccount: StorageBoxSubaccount | BoundStorageBoxSubaccount,
*, *,
name: str | None = None,
description: str | None = None, description: str | None = None,
labels: dict[str, str] | None = None, labels: dict[str, str] | None = None,
) -> BoundStorageBoxSubaccount: ) -> BoundStorageBoxSubaccount:
@ -1668,6 +1730,7 @@ class StorageBoxesClient(
See https://docs.hetzner.cloud/reference/hetzner#storage-box-subaccounts-update-a-subaccount See https://docs.hetzner.cloud/reference/hetzner#storage-box-subaccounts-update-a-subaccount
:param subaccount: Storage Box Subaccount to update. :param subaccount: Storage Box Subaccount to update.
:param name: Name of the Subaccount.
:param description: Description of the Subaccount. :param description: Description of the Subaccount.
:param labels: User-defined labels (key/value pairs) for the Subaccount. :param labels: User-defined labels (key/value pairs) for the Subaccount.
@ -1678,6 +1741,8 @@ class StorageBoxesClient(
raise ValueError("subaccount storage_box property is none") raise ValueError("subaccount storage_box property is none")
data: dict[str, Any] = {} data: dict[str, Any] = {}
if name is not None:
data["name"] = name
if description is not None: if description is not None:
data["description"] = description data["description"] = description
if labels is not None: if labels is not None:

View file

@ -373,6 +373,7 @@ class StorageBoxSubaccount(BaseDomain, DomainIdentityMixin):
__api_properties__ = ( __api_properties__ = (
"id", "id",
"name",
"username", "username",
"description", "description",
"server", "server",
@ -387,6 +388,7 @@ class StorageBoxSubaccount(BaseDomain, DomainIdentityMixin):
def __init__( def __init__(
self, self,
id: int | None = None, id: int | None = None,
name: str | None = None,
username: str | None = None, username: str | None = None,
description: str | None = None, description: str | None = None,
server: str | None = None, server: str | None = None,
@ -397,6 +399,7 @@ class StorageBoxSubaccount(BaseDomain, DomainIdentityMixin):
created: str | None = None, created: str | None = None,
): ):
self.id = id self.id = id
self.name = name
self.username = username self.username = username
self.description = description self.description = description
self.server = server self.server = server

View file

@ -22,7 +22,7 @@ from textwrap import dedent
logger = logging.getLogger("vendor") logger = logging.getLogger("vendor")
HCLOUD_SOURCE_URL = "https://github.com/hetznercloud/hcloud-python" HCLOUD_SOURCE_URL = "https://github.com/hetznercloud/hcloud-python"
HCLOUD_VERSION = "v2.13.0" HCLOUD_VERSION = "v2.15.0"
HCLOUD_VENDOR_PATH = "plugins/module_utils/_vendor/hcloud" HCLOUD_VENDOR_PATH = "plugins/module_utils/_vendor/hcloud"