]> git.ipfire.org Git - thirdparty/ipxe.git/commit
[cloud] Retry all Alibaba Cloud API calls
authorMichael Brown <mcb30@ipxe.org>
Tue, 21 Apr 2026 15:31:52 +0000 (16:31 +0100)
committerMichael Brown <mcb30@ipxe.org>
Tue, 21 Apr 2026 15:33:29 +0000 (16:33 +0100)
commitfa856e784c98b6ddd40e301d920e52a8a06347df
tree2bba45824592464ecc4fd43e9a62b4ffd25e8f91
parentd146b28b50b356874a672f70ee29744a19535373
[cloud] Retry all Alibaba Cloud API calls

Experimentation suggests Alibaba Cloud API calls are extremely
unreliable, with a failure rate around 1%.  It is therefore necessary
to allow for retrying basically every API call.

Some API calls (e.g. DescribeImages or ModifyImageAttribute) are
naturally idempotent and so safe to retry.  Some non-idempotent API
calls (e.g. CopyImage) support explicit idempotence tokens.  The
remaining API calls may simply fail on a retry, if the original
request happened to succeed but failed to return a response.

We could write convoluted retry logic around the non-idempotent calls,
but this would substantially increase the complexity of the already
unnecessarily complex code.  For now, we assume that retrying
non-idempotent requests is probably more likely to fix transient
failures than to cause additional problems.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
contrib/cloud/ali-import