[rust] Add Fluss 1.x protocol support to the admin client#631
Conversation
- Update fluss_api.proto with all 1.x message types (ACLs, KV snapshots,
producer offsets, cluster config, rebalance, server tags, etc.)
- Add optional fields: rack, remote_data_dir, leader_epoch, agg_mode, etc.
- Register 24 new ApiKey variants (1023-1064) in api_key.rs
- Update build.rs prost bytes config for new proto fields
- Add None defaults in convert.rs and partition.rs
- Update pre-existing message wrappers that reference renamed proto fields /
ApiKey variants so the crate still builds:
* create_partition.rs: ignore_if_exists -> ignore_if_not_exists
* get_latest_lake_snapshot.rs: ApiKey::GetLatestLakeSnapshot -> GetLakeSnapshot
* list_databases.rs: populate new include_summary field
* lookup.rs: PbLookupReqForBucket.key -> keys; new LookupRequest fields
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add 9 RPC message wrapper types: - alter_database, alter_table (DDL operations) - get_table_stats (table statistics) - list_database_summaries (database listing with summaries) - create_acls, list_acls, drop_acls (ACL management) - describe_cluster_configs, alter_cluster_configs (cluster configuration) Each wrapper follows the standard pattern: a request struct wrapping the proto-generated type, implementing RequestBody (tying to ApiKey and ResponseBody), WriteType, and ReadType. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add message wrappers for the remaining 1.x RPC APIs: - KV snapshot lifecycle: acquire/release/drop lease, list, metadata, latest snapshots, lake snapshot - Server management: add/remove server tag, rebalance + progress + cancel, get cluster health, list remote log manifests - Producer offsets: register/get/delete - ScanKv (API 1061): full KV-table bucket scan request/response
Add 27 new admin methods to FlussAdmin: - Database/table extensions: list_database_summaries, alter_database, alter_table, get_table_stats - KV snapshot operations: get_latest_kv_snapshots, get_kv_snapshot_metadata, create_kv_snapshot_lease, get_lake_snapshot - ACL management: create_acls, list_acls, drop_acls - Cluster configuration: describe_cluster_configs, alter_cluster_configs - Server management: add_server_tag, remove_server_tag, rebalance, list_rebalance_progress, cancel_rebalance - Producer offsets: register_producer_offsets, get_producer_offsets, delete_producer_offsets - Monitoring: get_cluster_health, list_remote_log_manifests - KV snapshots: list_kv_snapshots, release_kv_snapshot_lease, drop_kv_snapshot_lease
e4a4715 to
29a4d0b
Compare
|
Rebased onto updated #630 and applied the same Response-side domain types added under
For trivially-shaped responses (single field), methods now return the primitive directly instead of wrapping — e.g.
cargo build + clippy ( |
What
Adds 27 new admin methods to
FlussAdmin, consuming the message wrappers from #629/#630:list_database_summaries,alter_database,alter_table,get_table_statsget_latest_kv_snapshots,get_kv_snapshot_metadata,create_kv_snapshot_lease,get_lake_snapshotcreate_acls,list_acls,drop_aclsdescribe_cluster_configs,alter_cluster_configsadd_server_tag,remove_server_tag,rebalance,list_rebalance_progress,cancel_rebalanceregister_producer_offsets,get_producer_offsets,delete_producer_offsetsget_cluster_health,list_remote_log_manifestslist_kv_snapshots,release_kv_snapshot_lease,drop_kv_snapshot_lease(The proto-compat fix for
scanner.rs/admin.rslives in #628 so that PR leaves the tree building.)Stack
Part 4/6, stacked on #630 → #629 → #628. All target
main.🤖 Generated with Claude Code