Skip to content

refactor(sdk): Decompose authorize_with_auth_helper - #1972

Merged
gtema merged 1 commit into
mainfrom
fix2
Sep 3, 2026
Merged

refactor(sdk): Decompose authorize_with_auth_helper#1972
gtema merged 1 commit into
mainfrom
fix2

Conversation

@gtema

@gtema gtema commented Sep 3, 2026

Copy link
Copy Markdown
Owner

Splits the ~210-line monolith into four named private steps -
cached_auth_for_scope (cache lookup), login (reauth-with-available-auth
or fresh plugin login, including AuthReceipt retry), finalize_scope
(rescope/cache the resolved token), and apply_catalog_from_auth
(project the token catalog into the session) - with the public method
reduced to a thin orchestrator. Behavior is unchanged.

cached_auth_for_scope is now a plain sync fn, independently unit
tested (hit / miss / renew_auth-forces-miss) against the existing
MockServer-backed test harness without needing to drive the rest of
the auth flow.

Evaluated and dropped introducing an openstack_sdk::Session trait
(the other item from this pass): codegen hard-pins every generated
CLI/TUI call site to &mut AsyncOpenStack, so the trait could only ever
cover two small hand-written orchestration functions - not worth a
new public SDK trait for.

Assisted-By: Claude Sonnet 5 noreply@anthropic.com
Signed-off-by: Artem Goncharov artem.goncharov@gmail.com

Splits the ~210-line monolith into four named private steps -
cached_auth_for_scope (cache lookup), login (reauth-with-available-auth
or fresh plugin login, including AuthReceipt retry), finalize_scope
(rescope/cache the resolved token), and apply_catalog_from_auth
(project the token catalog into the session) - with the public method
reduced to a thin orchestrator. Behavior is unchanged.

cached_auth_for_scope is now a plain sync fn, independently unit
tested (hit / miss / renew_auth-forces-miss) against the existing
MockServer-backed test harness without needing to drive the rest of
the auth flow.

Evaluated and dropped introducing an openstack_sdk::Session trait
(the other item from this pass): codegen hard-pins every generated
CLI/TUI call site to &mut AsyncOpenStack, so the trait could only ever
cover two small hand-written orchestration functions - not worth a
new public SDK trait for.

Assisted-By: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Artem Goncharov <artem.goncharov@gmail.com>
@gtema
gtema merged commit e6d2db9 into main Sep 3, 2026
20 checks passed
@gtema-release-plz gtema-release-plz Bot mentioned this pull request Sep 3, 2026
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