Skip to content

fix(sdk): Fix microversion header negotiation#1863

Open
gtema wants to merge 1 commit into
mainfrom
sanity
Open

fix(sdk): Fix microversion header negotiation#1863
gtema wants to merge 1 commit into
mainfrom
sanity

Conversation

@gtema

@gtema gtema commented Jul 15, 2026

Copy link
Copy Markdown
Owner

Rename set_latest_microversion to set_request_microversion_header and
rewrite to use endpoint.api_version() as the microversion value sent in
the OpenStack-API-Version header. Previously the function used
service_endpoint.version() (URL-parsed, always 2.1 for compute),
ignoring the actual microversion the generated struct requires.

Add bounds validation: if the endpoint's required microversion falls
outside the cloud's discovered min/max range, return a new
ApiError::MicroversionIncompatible error instead of sending a doomed
request. The error carries required version and cloud range for a
clear user-facing message.

Add Copy, Eq, PartialOrd, Ord derives to ApiVersion to enable direct
comparison. Reuse ApiVersion::from_apiver_str for parsing cloud
min/max version strings instead of a custom parser.

Signed-off-by: Artem Goncharov artem.goncharov@gmail.com

@gtema
gtema force-pushed the sanity branch 2 times, most recently from da4ac44 to 9cee400 Compare July 16, 2026 09:28
Rename set_latest_microversion to set_request_microversion_header and
rewrite to use endpoint.api_version() as the microversion value sent in
the OpenStack-API-Version header. Previously the function used
service_endpoint.version() (URL-parsed, always 2.1 for compute),
ignoring the actual microversion the generated struct requires.

Add bounds validation: if the endpoint's required microversion falls
outside the cloud's discovered min/max range, return a new
ApiError::MicroversionIncompatible error instead of sending a doomed
request.  The error carries required version and cloud range for a
clear user-facing message.

Add Copy, Eq, PartialOrd, Ord derives to ApiVersion to enable direct
comparison.  Reuse ApiVersion::from_apiver_str for parsing cloud
min/max version strings instead of a custom parser.

Signed-off-by: Artem Goncharov <artem.goncharov@gmail.com>
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.

1 participant