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 )
...
[](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` |
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](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
([#​409](https://togithub.com/hetznercloud/hcloud-python/issues/409 ))
([bce5e94](bce5e940e2 ))
- clean unused arguments in the `Client.servers.rebuild` method
([#​407](https://togithub.com/hetznercloud/hcloud-python/issues/407 ))
([6d33c3c](6d33c3cff5 ))
- details are optional in API errors
([#​411](https://togithub.com/hetznercloud/hcloud-python/issues/411 ))
([f1c6594](f1c6594dee ))
- rename `trace_id` variable to `correlation_id`
([#​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`
([#​406](https://togithub.com/hetznercloud/hcloud-python/issues/406 ))
- make `datacenter` argument optional when creating a primary ip
([#​363](https://togithub.com/hetznercloud/hcloud-python/issues/363 ))
- remove deprecated `include_wildcard_architecture` argument in
`IsosClient.get_list` and `IsosClient.get_all`
([#​402](https://togithub.com/hetznercloud/hcloud-python/issues/402 ))
- make `Client.request` `tries` a private argument
([#​399](https://togithub.com/hetznercloud/hcloud-python/issues/399 ))
- make `Client.poll_interval` a private property
([#​398](https://togithub.com/hetznercloud/hcloud-python/issues/398 ))
- return empty dict on empty responses in `Client.request`
([#​400](https://togithub.com/hetznercloud/hcloud-python/issues/400 ))
- remove deprecated `hcloud.hcloud` module
([#​401](https://togithub.com/hetznercloud/hcloud-python/issues/401 ))
- move `hcloud.__version__.VERSION` to `hcloud.__version__`
([#​397](https://togithub.com/hetznercloud/hcloud-python/issues/397 ))
##### Features
- add `trace_id` to API exceptions
([#​404](https://togithub.com/hetznercloud/hcloud-python/issues/404 ))
([8375261](8375261da3 ))
- allow using a custom poll_interval function
([#​403](https://togithub.com/hetznercloud/hcloud-python/issues/403 ))
([93eb56b](93eb56ba4d ))
- make `Client.poll_interval` a private property
([#​398](https://togithub.com/hetznercloud/hcloud-python/issues/398 ))
([d5f24db](d5f24db281 ))
- make `Client.request` `tries` a private argument
([#​399](https://togithub.com/hetznercloud/hcloud-python/issues/399 ))
([428ea7e](428ea7e3be ))
- move `hcloud.__version__.VERSION` to `hcloud.__version__`
([#​397](https://togithub.com/hetznercloud/hcloud-python/issues/397 ))
([4e3f638](4e3f638862 )),
closes
[#​234](https://togithub.com/hetznercloud/hcloud-python/issues/234 )
- remove deprecated `hcloud.hcloud` module
([#​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`
([#​402](https://togithub.com/hetznercloud/hcloud-python/issues/402 ))
([6b977e2](6b977e2da5 ))
- return empty dict on empty responses in `Client.request`
([#​400](https://togithub.com/hetznercloud/hcloud-python/issues/400 ))
([9f46adb](9f46adb946 ))
- return full rebuild response in `Client.servers.rebuild`
([#​406](https://togithub.com/hetznercloud/hcloud-python/issues/406 ))
([1970d84](1970d84bec ))
##### Bug Fixes
- make `datacenter` argument optional when creating a primary ip
([#​363](https://togithub.com/hetznercloud/hcloud-python/issues/363 ))
([ebef774](ebef77464c ))
##### Dependencies
- update dependency coverage to >=7.5,<7.6
([#​386](https://togithub.com/hetznercloud/hcloud-python/issues/386 ))
([5660691](5660691ebd ))
- update dependency mypy to >=1.10,<1.11
([#​387](https://togithub.com/hetznercloud/hcloud-python/issues/387 ))
([35c933b](35c933bd21 ))
- update dependency myst-parser to v3
([#​385](https://togithub.com/hetznercloud/hcloud-python/issues/385 ))
([9f18270](9f18270489 ))
- update dependency pylint to >=3,<3.3
([#​391](https://togithub.com/hetznercloud/hcloud-python/issues/391 ))
([4a6f005](4a6f005cb0 ))
- update dependency pytest to >=8,<8.3
([#​390](https://togithub.com/hetznercloud/hcloud-python/issues/390 ))
([584a36b](584a36b658 ))
- update dependency sphinx to >=7.3.4,<7.4
([#​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
([#​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
([#​405](https://togithub.com/hetznercloud/hcloud-python/issues/405 ))
([c77f771](c77f771e2b ))
- cx11 is name, not an id
([#​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
Jonas L
5358110ed3
test: use longer role namespace to prevent collision ( #456 )
...
##### SUMMARY
Use bigger roles namespace, by using the first 2 chars of each word:
`load_balancer_network` => `lobane`
For example, we have such cases:
- `rdns` => `r` => `rd`
- `route` => `r` => `ro`
2024-02-05 15:41:58 +01:00