diff --git a/plugins/module_utils/vendor/hcloud/_exceptions.py b/plugins/module_utils/vendor/hcloud/_exceptions.py index c884a9a..e33105a 100644 --- a/plugins/module_utils/vendor/hcloud/_exceptions.py +++ b/plugins/module_utils/vendor/hcloud/_exceptions.py @@ -4,11 +4,15 @@ from typing import Any class HCloudException(Exception): - """There was an error while using the hcloud library""" + """There was an error while using the hcloud library. + + All exceptions in the hcloud library inherit from this exception. It may be used as + catch-all exception. + """ class APIException(HCloudException): - """There was an error while performing an API Request""" + """There was an error while performing an API Request.""" def __init__( self, diff --git a/plugins/module_utils/vendor/hcloud/_version.py b/plugins/module_utils/vendor/hcloud/_version.py index 591adbf..3f2e8eb 100644 --- a/plugins/module_utils/vendor/hcloud/_version.py +++ b/plugins/module_utils/vendor/hcloud/_version.py @@ -1,3 +1,3 @@ from __future__ import annotations -__version__ = "2.4.0" # x-releaser-pleaser-version +__version__ = "2.5.0" # x-releaser-pleaser-version diff --git a/plugins/module_utils/vendor/hcloud/actions/domain.py b/plugins/module_utils/vendor/hcloud/actions/domain.py index af2b298..92b40a8 100644 --- a/plugins/module_utils/vendor/hcloud/actions/domain.py +++ b/plugins/module_utils/vendor/hcloud/actions/domain.py @@ -74,9 +74,22 @@ class ActionException(HCloudException): def __init__(self, action: Action | BoundAction): assert self.__doc__ is not None message = self.__doc__ - if action.error is not None and "message" in action.error: + + extras = [] + if ( + action.error is not None + and "code" in action.error + and "message" in action.error + ): message += f": {action.error['message']}" + extras.append(action.error["code"]) + else: + extras.append(action.command) + + extras.append(str(action.id)) + message += f" ({', '.join(extras)})" + super().__init__(message) self.message = message self.action = action diff --git a/scripts/vendor.py b/scripts/vendor.py index 03db023..f8c5bc6 100755 --- a/scripts/vendor.py +++ b/scripts/vendor.py @@ -22,7 +22,7 @@ from textwrap import dedent logger = logging.getLogger("vendor") HCLOUD_SOURCE_URL = "https://github.com/hetznercloud/hcloud-python" -HCLOUD_VERSION = "v2.4.0" +HCLOUD_VERSION = "v2.5.0" HCLOUD_VENDOR_PATH = "plugins/module_utils/vendor/hcloud" diff --git a/tests/unit/module_utils/test_hcloud.py b/tests/unit/module_utils/test_hcloud.py index 86601e7..a4ec432 100644 --- a/tests/unit/module_utils/test_hcloud.py +++ b/tests/unit/module_utils/test_hcloud.py @@ -68,7 +68,7 @@ def test_hcloud_fail_json_hcloud(module): hcloud.fail_json_hcloud(exception) # pylint: disable=unreachable module.fail_json.assert_called_with( - msg="The pending action failed: Server does not exist anymore", + msg="The pending action failed: Server does not exist anymore (server_does_not_exist_anymore, 1084730887)", exception=traceback.format_exc(), failure={ "action": { @@ -103,7 +103,7 @@ def test_hcloud_fail_json_hcloud(module): hcloud.fail_json_hcloud(exception) # pylint: disable=unreachable module.fail_json.assert_called_with( - msg="The pending action timed out", + msg="The pending action timed out (create_server, 1084659545)", exception=traceback.format_exc(), failure={ "action": {