1
0
Fork 0
mirror of https://github.com/ansible-collections/hetzner.hcloud.git synced 2026-02-04 08:01:49 +00:00
Commit graph

153 commits

Author SHA1 Message Date
Jonas L.
579b34e754
fix: ensure returned resource ids are integers (#651)
##### SUMMARY

The documentation states that all our returned resource ids are
integers, this change aligns our modules with the docs.

The impact of this change should be minimal, as ids are used for
identification purposes by directly forwarding the values (no
transformation of the data is done).

##### ISSUE TYPE

- Bugfix Pull Request


##### COMPONENT NAME

All modules
2025-06-11 10:09:12 +02:00
Will Bicks
15829561f0
test: server placement group idempotency using id (#648)
##### SUMMARY
<!--- Describe the change below, including rationale and design
decisions -->

Add a test that adding a placement group to a server by ID is
idempotent.

Verifies fix for #647

<!--- HINT: Include "Fixes #nnn" if you are fixing an existing issue -->

##### ISSUE TYPE
<!--- Pick one below and delete the rest -->
- Bugfix Pull Request

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below
-->
server

##### ADDITIONAL INFORMATION

Will pass when the changes introduced in
https://github.com/hetznercloud/hcloud-python/pull/504 are available in
this module.
2025-06-10 20:46:56 +02:00
Jonas L.
d75b408830
test: reduce load balancer tests flakiness (#646)
##### SUMMARY

- Reduce load balancer test flakiness
- Add IP for Hetzner Internal account
2025-06-03 18:18:09 +02:00
Amirhossein Shaerpour
4fc2003f30
feat: allow recreating ssh key when public key in the API does not match (#634)
##### SUMMARY

- Log a warning when the provided public key does not match one in the
API.
- When the public key does not match the one in the API, allow
recreating the SSH Key in the API using the ``force=true`` argument.


Closes: #578 

##### ISSUE TYPE
- Feature Pull Request

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below
-->
`ssh_key`

##### ADDITIONAL INFORMATION
In Hetzner API, we do not have any public_key change endpoint and only
updating names and labels are allowed.
For public_key The only way is removing and re-creating. `force` option
allows users to do re-creation if needed.

---------

Co-authored-by: jo <ljonas@riseup.net>
2025-06-03 17:43:54 +02:00
Jonas L.
1ec09d252d
test: fix templating warnings (#643)
##### SUMMARY

Remove warnings from ansible test tasks.
2025-06-03 13:20:17 +02:00
Amirhossein Shaerpour
e8fda3557c
fix!: do not detach volume if server is not provided (#632)
Do not detach volume if `server` is not provided

##### SUMMARY

Volumes were automatically detached from servers if they already exists
and attached to a server.
This PR fixes this issue after adding new ```volume_attachment``` module
so user can attach/detach
volumes with that module

Fixes: #490 

##### ISSUE TYPE
- Bugfix Pull Request

##### COMPONENT NAME
```volume```

---------

Co-authored-by: Jonas L. <jooola@users.noreply.github.com>
2025-05-07 10:44:39 +02:00
Jonas L.
a041bee1b3
test: fix type casting for ansible-core 2.19 (devel) (#630)
##### SUMMARY

Related to #627 

String casting seem not needed anymore, I assume because native type are
now preserved.
2025-04-28 20:50:34 +02:00
Jonas L.
b83e566df0
test: add more hetzner vswitch ids (#628)
##### SUMMARY

Reduce the probability of reusing a v switch that is still attached to
an old sub network.
2025-04-28 18:49:14 +02:00
renovate[bot]
cf220a229f
chore(deps): update dependency hcloud to v2.5.0 (#626) 2025-04-28 12:55:16 +02:00
Amirhossein Shaerpour
c37cdf0bc6
feat: add volume_attachment module (#622)
##### SUMMARY

Added `volume_attachment` as centralized module for attaching and
detaching volumes from servers.

Fixes #490

##### ISSUE TYPE
- New Module Pull Request

##### COMPONENT NAME
`volume_attachment`

---------

Co-authored-by: jo <ljonas@riseup.net>
2025-04-28 12:49:21 +02:00
Jonas L.
e59e787d99
feat: allow renaming a server (#619)
##### SUMMARY

Fixes #600

Allow renaming a server by passing its id and its new name.

##### ISSUE TYPE

- Feature Pull Request


##### COMPONENT NAME

server
2025-03-25 17:34:59 +01:00
Jonas L.
b82e18ffbd
feat: drop support for python 3.8 (#615)
##### SUMMARY

Drop support for python 3.8 which is EOL since Oct 2024.

https://endoflife.date/python

Allow us to upgrade the hcloud-python library.
2025-03-21 15:10:23 +01:00
Jonas L.
140d1508cc
feat!: drop support for ansible-core 2.16 (#612)
##### SUMMARY

ansible-core 2.16 will be EOL in May 2025.


https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html#ansible-core-support-matrix

We are dropping support for ansible-core 2.16 alongside ansible-core
2.15 to prevent cutting another major release in the next month.
2025-03-21 14:51:58 +01:00
Jonas L.
92f135456f
feat!: drop support for ansible-core 2.15 (#611)
##### SUMMARY

ansible-core 2.15 is EOL since Nov 2024.


https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html#ansible-core-support-matrix
2025-03-21 14:50:47 +01:00
Daniele Fognini
4534cf6b9d
feat: add new created state for idempotent server creation (#606)
##### SUMMARY

Add a new state for server creation without immediate start, to allow
idempotent network customization before starting

##### ISSUE TYPE
- Feature Pull Request

##### COMPONENT NAME
server

---------

Co-authored-by: jo <ljonas@riseup.net>
2025-03-21 14:05:03 +01:00
Jonas L.
4f8f95b58f
test: ignore lint error for missing args in tests (#602)
##### SUMMARY

We are testing that the parameters are missing, so we should ignore the
linting errors.
2025-02-24 13:50:13 +01:00
Jonas L.
fe3bfa9020
fix: improve unknown certificate error in load_balancer_service (#570)
##### SUMMARY

Closes #563 

##### ISSUE TYPE

- Bugfix Pull Request

##### COMPONENT NAME

load_balancer_service
2024-10-10 15:19:16 +02:00
Jonas L.
f05894ad09
test: do not use deprecated iso (#569)
##### SUMMARY

The iso used for the tests is now deprecated, changed to the latest
version of the system rescue iso.
2024-10-10 12:55:03 +02:00
Jonas L.
abdf72212b
fix: check label_selector child targets with load_balancer_status filter (#552)
##### SUMMARY

The previous implementation did not take into consideration label
selectors targets, and their child targets.

This change implements a recursive function that traverse all the
targets.

Related to #467 #550
2024-08-16 11:09:20 +02:00
Jonas L.
fce8bc9bb9
feat: compute load balancer targets status using a filter (#550)
##### SUMMARY

Allow to compute the status of a load balancer using a filter.

Closes #467 

##### ISSUE TYPE

- Feature Pull Request


##### COMPONENT NAME

hetzner.hcloud.loab_balancer_status
2024-08-14 14:18:39 +02:00
Jonas L.
cb03f49df7
chore: fix sanity unreachable code (#548) 2024-08-09 09:39:05 +02:00
Jonas L.
04a45bd92c
test: improve load_balancer_target integration using new framework (#547)
##### SUMMARY

Use the new testing framework for the load_balancer_target integration
tests.

Depends on #546
2024-08-08 16:05:21 +02:00
Jonas L.
d56d12b68d
test: improve load_balancer_service integration using new framework (#546)
SUMMARY

Use the new testing framework for the load_balancer_service integration
tests.

Depends on #545
2024-08-08 16:04:22 +02:00
Jonas L.
1d9ea16fc4
test: improve load_balancer_network integration using new framework (#545)
##### SUMMARY

Use the new testing framework for the load_balancer_network integration
tests.
2024-08-08 16:01:47 +02:00
Jonas L.
87ad95a0ad
test: use shared network zone variable (#543)
##### SUMMARY

Allow to easily update the network zone when changing the location, for
testing.
2024-08-06 12:50:58 +02:00
Jonas L.
c6d7121e9e
test: ensure location is used for tests (#541)
##### SUMMARY

Make sure that the tests uses the `hcloud_location_name` variable for
the tests.
2024-08-06 11:59:31 +02:00
Jonas L.
4bfd063fca
test: do not check error messages meant for humans (#540)
##### SUMMARY

Reduce tests flakiness, as human error messages may change over time.
2024-08-01 16:09:11 +02:00
Jonas L.
ee09398b85
test: add server cleanup timeout workaround (#539)
##### SUMMARY

Prevent a timeout error when cleaning up server right after the firewall
got deleted.
2024-08-01 16:08:33 +02:00
Jonas L.
c665629f7e
refactor: reuse exponential_backoff_function from hcloud-python (#535)
Replace the local function with the exponential_backoff_function from
hcloud-python
2024-07-25 16:20:23 +02:00
Jonas L.
b9a1509378
test: update network delete protection error message (#536)
The new network service has a different error message.
2024-07-25 15:42:33 +02:00
Jonas L
4d4941aaa2
ci: update gitlab ci config (#529)
- Remove outdated jobs
- Only run on feature branches
- Remove old gitlab ci scripts
2024-07-09 12:30:49 +02:00
Jonas L
19e586fa22
feat: use exponential backoff algorithm when polling actions (#524)
##### SUMMARY

Replace the constant poll interval of 1 second, with a truncated
exponential back off algorithm with jitter.

Below is a suite of poll interval (in seconds) generated by the new
algorithm:
```
1.49
2.14
5.46
6.51
6.57
5.57
5.98
7.13
6.59
7.10
5.54
5.03
6.56
5.96
6.72
7.21
7.05
5.31
5.60
6.33
6.82
5.42
6.08
6.60
TOTAL: 140.77
```
2024-07-04 15:07:05 +02:00
renovate[bot]
9adb8b3981
chore(deps): update dependency hcloud to v2 (#523)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [hcloud](https://togithub.com/hetznercloud/hcloud-python)
([changelog](https://togithub.com/hetznercloud/hcloud-python/blob/main/CHANGELOG.md))
| `1.35.0` -> `2.0.1` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/hcloud/2.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/hcloud/2.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/hcloud/1.35.0/2.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/hcloud/1.35.0/2.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v2.0.1`](https://togithub.com/hetznercloud/hcloud-python/blob/HEAD/CHANGELOG.md#201-2024-07-03)

[Compare
Source](https://togithub.com/hetznercloud/hcloud-python/compare/v2.0.0...v2.0.1)

##### Bug Fixes

- `assignee_type` is required when creating a primary ip
([#&#8203;409](https://togithub.com/hetznercloud/hcloud-python/issues/409))
([bce5e94](bce5e940e2))
- clean unused arguments in the `Client.servers.rebuild` method
([#&#8203;407](https://togithub.com/hetznercloud/hcloud-python/issues/407))
([6d33c3c](6d33c3cff5))
- details are optional in API errors
([#&#8203;411](https://togithub.com/hetznercloud/hcloud-python/issues/411))
([f1c6594](f1c6594dee))
- rename `trace_id` variable to `correlation_id`
([#&#8203;408](https://togithub.com/hetznercloud/hcloud-python/issues/408))
([66a0f54](66a0f54699))

###
[`v2.0.0`](https://togithub.com/hetznercloud/hcloud-python/blob/HEAD/CHANGELOG.md#200-2024-07-03)

[Compare
Source](https://togithub.com/hetznercloud/hcloud-python/compare/v1.35.0...v2.0.0)

##### ⚠ BREAKING CHANGES

- return full rebuild response in `Client.servers.rebuild`
([#&#8203;406](https://togithub.com/hetznercloud/hcloud-python/issues/406))
- make `datacenter` argument optional when creating a primary ip
([#&#8203;363](https://togithub.com/hetznercloud/hcloud-python/issues/363))
- remove deprecated `include_wildcard_architecture` argument in
`IsosClient.get_list` and `IsosClient.get_all`
([#&#8203;402](https://togithub.com/hetznercloud/hcloud-python/issues/402))
- make `Client.request` `tries` a private argument
([#&#8203;399](https://togithub.com/hetznercloud/hcloud-python/issues/399))
- make `Client.poll_interval` a private property
([#&#8203;398](https://togithub.com/hetznercloud/hcloud-python/issues/398))
- return empty dict on empty responses in `Client.request`
([#&#8203;400](https://togithub.com/hetznercloud/hcloud-python/issues/400))
- remove deprecated `hcloud.hcloud` module
([#&#8203;401](https://togithub.com/hetznercloud/hcloud-python/issues/401))
- move `hcloud.__version__.VERSION` to `hcloud.__version__`
([#&#8203;397](https://togithub.com/hetznercloud/hcloud-python/issues/397))

##### Features

- add `trace_id` to API exceptions
([#&#8203;404](https://togithub.com/hetznercloud/hcloud-python/issues/404))
([8375261](8375261da3))
- allow using a custom poll_interval function
([#&#8203;403](https://togithub.com/hetznercloud/hcloud-python/issues/403))
([93eb56b](93eb56ba4d))
- make `Client.poll_interval` a private property
([#&#8203;398](https://togithub.com/hetznercloud/hcloud-python/issues/398))
([d5f24db](d5f24db281))
- make `Client.request` `tries` a private argument
([#&#8203;399](https://togithub.com/hetznercloud/hcloud-python/issues/399))
([428ea7e](428ea7e3be))
- move `hcloud.__version__.VERSION` to `hcloud.__version__`
([#&#8203;397](https://togithub.com/hetznercloud/hcloud-python/issues/397))
([4e3f638](4e3f638862)),
closes
[#&#8203;234](https://togithub.com/hetznercloud/hcloud-python/issues/234)
- remove deprecated `hcloud.hcloud` module
([#&#8203;401](https://togithub.com/hetznercloud/hcloud-python/issues/401))
([db37e63](db37e633eb))
- remove deprecated `include_wildcard_architecture` argument in
`IsosClient.get_list` and `IsosClient.get_all`
([#&#8203;402](https://togithub.com/hetznercloud/hcloud-python/issues/402))
([6b977e2](6b977e2da5))
- return empty dict on empty responses in `Client.request`
([#&#8203;400](https://togithub.com/hetznercloud/hcloud-python/issues/400))
([9f46adb](9f46adb946))
- return full rebuild response in `Client.servers.rebuild`
([#&#8203;406](https://togithub.com/hetznercloud/hcloud-python/issues/406))
([1970d84](1970d84bec))

##### Bug Fixes

- make `datacenter` argument optional when creating a primary ip
([#&#8203;363](https://togithub.com/hetznercloud/hcloud-python/issues/363))
([ebef774](ebef77464c))

##### Dependencies

- update dependency coverage to >=7.5,<7.6
([#&#8203;386](https://togithub.com/hetznercloud/hcloud-python/issues/386))
([5660691](5660691ebd))
- update dependency mypy to >=1.10,<1.11
([#&#8203;387](https://togithub.com/hetznercloud/hcloud-python/issues/387))
([35c933b](35c933bd21))
- update dependency myst-parser to v3
([#&#8203;385](https://togithub.com/hetznercloud/hcloud-python/issues/385))
([9f18270](9f18270489))
- update dependency pylint to >=3,<3.3
([#&#8203;391](https://togithub.com/hetznercloud/hcloud-python/issues/391))
([4a6f005](4a6f005cb0))
- update dependency pytest to >=8,<8.3
([#&#8203;390](https://togithub.com/hetznercloud/hcloud-python/issues/390))
([584a36b](584a36b658))
- update dependency sphinx to >=7.3.4,<7.4
([#&#8203;383](https://togithub.com/hetznercloud/hcloud-python/issues/383))
([69c2e16](69c2e16073))
- update pre-commit hook asottile/pyupgrade to v3.16.0
([0ce5fbc](0ce5fbccba))
- update pre-commit hook pre-commit/pre-commit-hooks to v4.6.0
([5ef25ab](5ef25ab396))
- update pre-commit hook psf/black-pre-commit-mirror to v24.4.0
([0941fbf](0941fbfab2))
- update pre-commit hook psf/black-pre-commit-mirror to v24.4.1
([fec08c5](fec08c5323))
- update pre-commit hook psf/black-pre-commit-mirror to v24.4.2
([#&#8203;389](https://togithub.com/hetznercloud/hcloud-python/issues/389))
([2b2e21f](2b2e21f613))
- update pre-commit hook pycqa/flake8 to v7.1.0
([3bc651d](3bc651d50d))

##### Documentation

- add v2 upgrade notes
([#&#8203;405](https://togithub.com/hetznercloud/hcloud-python/issues/405))
([c77f771](c77f771e2b))
- cx11 is name, not an id
([#&#8203;381](https://togithub.com/hetznercloud/hcloud-python/issues/381))
([b745d40](b745d4049f))

</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 has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/ansible-collections/hetzner.hcloud).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjEuOSIsInVwZGF0ZWRJblZlciI6IjM3LjQyMS45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: jo <ljonas@riseup.net>
2024-07-03 15:05:12 +02:00
Jonas L
f3d697c006
test: use shared variable for server type, image and location (#522)
##### SUMMARY

Use shared variables to store information about which server type, image
or location to use for our integrations tests.

- The location was changed from FSN to HEL.
- The image was changed from ubuntu-22.04 to debian-12.
2024-06-26 16:10:58 +02:00
Jonas L
069b866e57
test: add internal account vswitch ids (#521)
##### SUMMARY

Adds a few vSwitche IDs from our internal Hetzner Account, to run test
manually.
2024-06-26 14:31:49 +02:00
Jonas L
029a7c686b
test: update server type to cax11 (#518)
Ensure we are consistent across our tests, and updates some server types
that were missing from the previous PR updating this:

https://github.com/ansible-collections/hetzner.hcloud/pull/510
2024-06-12 10:57:12 +02:00
Jonas L
8157f9a250
feat!: drop support for ansible-core 2.14 (#512)
##### SUMMARY

ansible-core 2.14 is EOL since 20 May 2024.

https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html#ansible-core-support-matrix
2024-06-11 16:21:03 +02:00
Jonas L
fb8c2a9f58
chore: replace deprecated server type with cx22 (#510)
Learn more:
https://docs.hetzner.cloud/changelog#2024-06-06-old-server-types-with-shared-intel-vcpus-are-deprecated

- Updated docs with newer server types
- Use ARM server type for tests
2024-06-11 15:30:47 +02:00
Jonas L
0dc857830d
test: add workaround to prevent a timeout during the server deletion (#513)
When the following steps are executed, the server deletion fails with a
timeout:
- delete primary IP (attached to the server)
- delete server
- timeout after 5 minutes on server delete action


Adding the 2 seconds pause will work around this timeout.
2024-06-10 18:33:41 +02:00
Jonas L
a98cf72f92
fix(inventory): ensure host ipv6 variable is json serializable (#496)
##### SUMMARY

Fix https://github.com/ansible-collections/hetzner.hcloud/issues/495
Related to
https://github.com/ansible-collections/hetzner.hcloud/pull/477

##### ISSUE TYPE

- Bugfix Pull Request


##### COMPONENT NAME
inventory
2024-04-16 11:48:03 +02:00
Jonas L
00a4fdd58a
fix: use empty string to remove server from its placement group (#489)
##### SUMMARY
- Do not remove the server from its placement group when the
`placement_group` argument is not specified.
- Pass an empty string to the `placement_group` argument to remove a
server from its placement group.
2024-04-04 16:53:32 +02:00
Jonas L
8738f369d3
test: check for api error code when possible (#486)
##### SUMMARY

Ensure the error code is correct and replace the error message check in
some cases.
2024-04-04 11:55:45 +02:00
Jonas L
7776905321
test: force firewall cleanup before running server cleanup (#485)
##### SUMMARY

Cleanup the firewall before the server to prevent a server deletion
timeout.
2024-04-04 11:54:54 +02:00
Jonas L
cfdaa0fb82
test: disable fact gathering in integration tests (#482)
##### SUMMARY
This should speed up a little our integrations tests by not gather facts
before each test run.

Docs
https://docs.ansible.com/ansible/latest/dev_guide/testing/sanity/integration-aliases.html
2024-04-02 19:21:17 +02:00
jjeff07
51afb23166
feat: assign primary ip to a server on create (#465)
##### SUMMARY

Fixes #464 

##### ISSUE TYPE
- Feature Pull Request

##### COMPONENT NAME
primary_ip

---------

Co-authored-by: jo <ljonas@riseup.net>
2024-03-11 18:20:30 +01:00
Jonas L
e781f48f15
chore: add fail_on_invalid_params helper (#470)
##### SUMMARY

Add a small helper to validate parameters while executing the module.

---------

Co-authored-by: Justin Jeffery <justin.jeffery@ipfabric.io>
2024-03-11 18:03:26 +01:00
Jonas L
46717e2d65
test: improve primary_ip integration using the testing framework (#468)
##### SUMMARY
Use the new testing framework for the primary ip integration tests.
2024-02-29 12:29:18 +01:00
Jonas L
b0cb1a665b
test: do not start server where possible (#461)
##### SUMMARY

Reduce test time by not starting servers when not required.
2024-02-08 17:37:47 +01:00
Jonas L
1ae6769210
fix: return sorted alias_ips in server_network module (#458)
##### SUMMARY

- test: use testing framework for server_network integration tests
- fix: return sorted alias_ips in server_network module

##### ISSUE TYPE

- Bugfix Pull Request


##### COMPONENT NAME

server_network
2024-02-07 11:45:37 +01:00
Jonas L
cf52215864
chore: add dev target helper (#457)
##### SUMMARY

Adds a helper to configure the dev env. For example reexporting a
hcloud_token and reload the integration tests configuration:
```bash
export HCLOUD_TOKEN="$(get-tmp-hcloud-token)"
make dev
```
2024-02-06 14:04:18 +01:00