benroeder opened a new pull request, #691:
URL: https://github.com/apache/opendal-reqsign/pull/691
## Summary
- Add `services-openstack` feature with Keystone v3 password authentication
- `OpenstackConfig` — loads auth_url, username, password, domain/project
settings from env vars or fields
- `OpenstackLoader` — authenticates against Keystone, caches tokens with
2-minute expiry grace, parses service catalog
- `OpenstackCredential` — token + expiry + service catalog with endpoint
lookup by service type, interface, and region
- `OpenstackSigner` — signs requests by inserting `X-Auth-Token` header
- 15 unit tests covering credential validity, catalog lookup, serde,
and request signing
- Add `services-openstack` to CI `build_single_feature` matrix
## Context
Companion to #690 (main branch). This backport targets v0.16.x which
is the version OpenDAL currently depends on. Tested against a real
OpenStack Keystone cluster.
Related: #685
## Files
New (790 lines):
- `src/openstack/mod.rs` — module re-exports
- `src/openstack/config.rs` — Config + from_env()
- `src/openstack/credential.rs` — Credential, Loader, CatalogEntry, Endpoint
- `src/openstack/signer.rs` — Signer
Modified:
- `Cargo.toml` — add `services-openstack` feature
- `src/lib.rs` — add feature-gated module
- `.github/workflows/ci.yml` — add to build matrix
## Test plan
- [x] `cargo fmt --all -- --check` passes
- [x] `cargo test --no-fail-fast` — 81 unit + 32 integration + 7 doc-tests
all pass
- [x] `cargo check --all-features` compiles clean (only pre-existing
warnings)
- [x] Tested against real OpenStack Keystone cluster
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]