@@ -68,10 +68,10 @@ impl<KV: KVApi> ShareApi for KV {
68
68
debug ! ( req = debug( & req) , "ShareApi: {}" , func_name!( ) ) ;
69
69
70
70
// Get all outbound share accounts.
71
- let outbound_accounts = get_outbound_shared_accounts_by_tenant ( self , & req. tenant ) . await ?;
71
+ let outbound_accounts = get_outbound_share_infos_by_tenant ( self , & req. tenant ) . await ?;
72
72
73
73
// Get all inbound share accounts.
74
- let inbound_accounts = get_inbound_shared_accounts_by_tenant ( self , & req. tenant ) . await ?;
74
+ let inbound_accounts = get_inbound_share_infos_by_tenant ( self , & req. tenant ) . await ?;
75
75
76
76
Ok ( ShowSharesReply {
77
77
outbound_accounts,
@@ -759,11 +759,9 @@ impl<KV: KVApi> ShareApi for KV {
759
759
& self ,
760
760
req : GetShareGrantTenantsReq ,
761
761
) -> MetaResult < GetShareGrantTenantsReply > {
762
- let reply = get_outbound_shared_accounts_by_name ( self , & req. share_name ) . await ?;
762
+ let accounts = get_outbound_share_tenants_by_name ( self , & req. share_name ) . await ?;
763
763
764
- Ok ( GetShareGrantTenantsReply {
765
- accounts : reply. accounts . unwrap_or_default ( ) ,
766
- } )
764
+ Ok ( GetShareGrantTenantsReply { accounts } )
767
765
}
768
766
769
767
// Return all the grant privileges of the object
@@ -920,7 +918,37 @@ async fn get_share_database_name(
920
918
}
921
919
}
922
920
923
- async fn get_outbound_shared_accounts_by_name (
921
+ async fn get_outbound_share_tenants_by_name (
922
+ kv_api : & ( impl KVApi + ?Sized ) ,
923
+ share_name : & ShareNameIdent ,
924
+ ) -> Result < Vec < GetShareGrantTenants > , MetaError > {
925
+ let res = get_share_or_err ( kv_api, share_name, format ! ( "get_share: {share_name}" ) ) . await ?;
926
+ let ( _share_id_seq, share_id, _share_meta_seq, share_meta) = res;
927
+
928
+ let mut accounts = vec ! [ ] ;
929
+ for account in share_meta. get_accounts ( ) {
930
+ let share_account_key = ShareAccountNameIdent {
931
+ account : account. clone ( ) ,
932
+ share_id,
933
+ } ;
934
+
935
+ let ( _seq, meta) = get_share_account_meta_or_err (
936
+ kv_api,
937
+ & share_account_key,
938
+ format ! ( "get_outbound_share_tenants_by_name's account: {share_id}/{account}" ) ,
939
+ )
940
+ . await ?;
941
+
942
+ accounts. push ( GetShareGrantTenants {
943
+ account,
944
+ grant_on : meta. share_on ,
945
+ } ) ;
946
+ }
947
+
948
+ Ok ( accounts)
949
+ }
950
+
951
+ async fn get_outbound_share_info_by_name (
924
952
kv_api : & ( impl KVApi + ?Sized ) ,
925
953
share_name : & ShareNameIdent ,
926
954
) -> Result < ShareAccountReply , MetaError > {
@@ -948,7 +976,7 @@ async fn get_outbound_shared_accounts_by_name(
948
976
} )
949
977
}
950
978
951
- async fn get_outbound_shared_accounts_by_tenant (
979
+ async fn get_outbound_share_infos_by_tenant (
952
980
kv_api : & ( impl KVApi + ?Sized ) ,
953
981
tenant : & str ,
954
982
) -> Result < Vec < ShareAccountReply > , MetaError > {
@@ -961,7 +989,7 @@ async fn get_outbound_shared_accounts_by_tenant(
961
989
let share_name_keys = list_keys ( kv_api, & tenant_share_name_key) . await ?;
962
990
963
991
for share_name in share_name_keys {
964
- let reply = get_outbound_shared_accounts_by_name ( kv_api, & share_name) . await ;
992
+ let reply = get_outbound_share_info_by_name ( kv_api, & share_name) . await ;
965
993
if let Ok ( reply) = reply {
966
994
outbound_share_accounts. push ( reply)
967
995
}
@@ -970,7 +998,7 @@ async fn get_outbound_shared_accounts_by_tenant(
970
998
Ok ( outbound_share_accounts)
971
999
}
972
1000
973
- async fn get_inbound_shared_accounts_by_tenant (
1001
+ async fn get_inbound_share_infos_by_tenant (
974
1002
kv_api : & ( impl KVApi + ?Sized ) ,
975
1003
tenant : & String ,
976
1004
) -> Result < Vec < ShareAccountReply > , MetaError > {
@@ -986,14 +1014,14 @@ async fn get_inbound_shared_accounts_by_tenant(
986
1014
let ( _share_meta_seq, share_meta) = get_share_meta_by_id_or_err (
987
1015
kv_api,
988
1016
share_id,
989
- format ! ( "get_inbound_shared_accounts_by_tenant : {}" , share_id) ,
1017
+ format ! ( "get_inbound_share_infos_by_tenant : {}" , share_id) ,
990
1018
)
991
1019
. await ?;
992
1020
993
1021
let ( _seq, share_name) = get_share_id_to_name_or_err (
994
1022
kv_api,
995
1023
share_id,
996
- format ! ( "get_inbound_shared_accounts_by_tenant : {}" , share_id) ,
1024
+ format ! ( "get_inbound_share_infos_by_tenant : {}" , share_id) ,
997
1025
)
998
1026
. await ?;
999
1027
let database_name = get_share_database_name ( kv_api, & share_meta, & share_name) . await ?;
@@ -1006,7 +1034,7 @@ async fn get_inbound_shared_accounts_by_tenant(
1006
1034
kv_api,
1007
1035
& share_account_key,
1008
1036
format ! (
1009
- "get_inbound_shared_accounts_by_tenant 's account: {}/{}" ,
1037
+ "get_inbound_share_infos_by_tenant 's account: {}/{}" ,
1010
1038
share_id, tenant
1011
1039
) ,
1012
1040
)
0 commit comments