Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: allow using a custom poll_interval function #403

Merged
merged 1 commit into from
Jul 2, 2024

Conversation

jooola
Copy link
Member

@jooola jooola commented Jul 2, 2024

Allow using a computed poll_interval sleeping time, (e.g. exponential back off) when polling actions.

@jooola jooola requested a review from apricote July 2, 2024 12:01
Copy link

codecov bot commented Jul 2, 2024

Codecov Report

Attention: Patch coverage is 92.85714% with 1 line in your changes missing coverage. Please review.

Project coverage is 92.95%. Comparing base (ebef774) to head (aaef4ec).

Files Patch % Lines
hcloud/_client.py 85.71% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #403      +/-   ##
==========================================
- Coverage   92.97%   92.95%   -0.02%     
==========================================
  Files          64       64              
  Lines        2874     2882       +8     
==========================================
+ Hits         2672     2679       +7     
- Misses        202      203       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Member

@apricote apricote left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! Do you plan to add exponential backoff (with jitter & max <3) in a follow up PR?

@jooola
Copy link
Member Author

jooola commented Jul 2, 2024

Hmm, true, I might as well add an exponential back off function factory.

@jooola
Copy link
Member Author

jooola commented Jul 2, 2024

Actually yes, I'll add the helper poll_interval function once we agreed on the default values, e.g. for the exponential back off algorithm.

@jooola jooola merged commit 93eb56b into hetznercloud:main Jul 2, 2024
10 checks passed
@jooola jooola deleted the poll_function branch July 2, 2024 12:30
jooola pushed a commit that referenced this pull request Jul 3, 2024
🤖 I have created a release *beep* *boop*
---


##
[2.0.0](v1.35.0...v2.0.0)
(2024-07-03)


### ⚠ BREAKING CHANGES

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

### Features

* add `trace_id` to API exceptions
([#404](#404))
([8375261](8375261))
* allow using a custom poll_interval function
([#403](#403))
([93eb56b](93eb56b))
* make `Client.poll_interval` a private property
([#398](#398))
([d5f24db](d5f24db))
* make `Client.request` `tries` a private argument
([#399](#399))
([428ea7e](428ea7e))
* move `hcloud.__version__.VERSION` to `hcloud.__version__`
([#397](#397))
([4e3f638](4e3f638)),
closes [#234](#234)
* remove deprecated `hcloud.hcloud` module
([#401](#401))
([db37e63](db37e63))
* remove deprecated `include_wildcard_architecture` argument in
`IsosClient.get_list` and `IsosClient.get_all`
([#402](#402))
([6b977e2](6b977e2))
* return empty dict on empty responses in `Client.request`
([#400](#400))
([9f46adb](9f46adb))
* return full rebuild response in `Client.servers.rebuild`
([#406](#406))
([1970d84](1970d84))


### Bug Fixes

* make `datacenter` argument optional when creating a primary ip
([#363](#363))
([ebef774](ebef774))


### Dependencies

* update dependency coverage to &gt;=7.5,&lt;7.6
([#386](#386))
([5660691](5660691))
* update dependency mypy to &gt;=1.10,&lt;1.11
([#387](#387))
([35c933b](35c933b))
* update dependency myst-parser to v3
([#385](#385))
([9f18270](9f18270))
* update dependency pylint to &gt;=3,&lt;3.3
([#391](#391))
([4a6f005](4a6f005))
* update dependency pytest to &gt;=8,&lt;8.3
([#390](#390))
([584a36b](584a36b))
* update dependency sphinx to &gt;=7.3.4,&lt;7.4
([#383](#383))
([69c2e16](69c2e16))
* update pre-commit hook asottile/pyupgrade to v3.16.0
([0ce5fbc](0ce5fbc))
* update pre-commit hook pre-commit/pre-commit-hooks to v4.6.0
([5ef25ab](5ef25ab))
* update pre-commit hook psf/black-pre-commit-mirror to v24.4.0
([0941fbf](0941fbf))
* update pre-commit hook psf/black-pre-commit-mirror to v24.4.1
([fec08c5](fec08c5))
* update pre-commit hook psf/black-pre-commit-mirror to v24.4.2
([#389](#389))
([2b2e21f](2b2e21f))
* update pre-commit hook pycqa/flake8 to v7.1.0
([3bc651d](3bc651d))


### Documentation

* add v2 upgrade notes
([#405](#405))
([c77f771](c77f771))
* cx11 is name, not an id
([#381](#381))
([b745d40](b745d40))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants