@@ -5,13 +5,16 @@ use std::collections::HashMap;
55use std:: default:: Default ;
66use std:: sync:: Arc ;
77
8+ use log:: trace;
9+
810use crate :: error:: VssError ;
911use crate :: headers:: { get_headermap, FixedHeaders , VssHeaderProvider } ;
1012use crate :: types:: {
1113 DeleteObjectRequest , DeleteObjectResponse , GetObjectRequest , GetObjectResponse ,
1214 ListKeyVersionsRequest , ListKeyVersionsResponse , PutObjectRequest , PutObjectResponse ,
1315} ;
1416use crate :: util:: retry:: { retry, RetryPolicy } ;
17+ use crate :: util:: KeyValueVecKeyPrinter ;
1518
1619const APPLICATION_OCTET_STREAM : & str = "application/octet-stream" ;
1720const DEFAULT_TIMEOUT : std:: time:: Duration = std:: time:: Duration :: from_secs ( 10 ) ;
@@ -77,7 +80,9 @@ impl<R: RetryPolicy<E = VssError>> VssClient<R> {
7780 pub async fn get_object (
7881 & self , request : & GetObjectRequest ,
7982 ) -> Result < GetObjectResponse , VssError > {
80- retry (
83+ let request_id: u64 = rand:: random ( ) ;
84+ trace ! ( "Sending GetObjectRequest {} for key {}." , request_id, request. key) ;
85+ let res = retry (
8186 || async {
8287 let url = format ! ( "{}/getObject" , self . base_url) ;
8388 self . post_request ( request, & url) . await . and_then ( |response : GetObjectResponse | {
@@ -92,7 +97,11 @@ impl<R: RetryPolicy<E = VssError>> VssClient<R> {
9297 } ,
9398 & self . retry_policy ,
9499 )
95- . await
100+ . await ;
101+ if let Err ( ref e) = res {
102+ trace ! ( "GetObjectRequest {} failed: {}" , request_id, e) ;
103+ }
104+ res
96105 }
97106
98107 /// Writes multiple [`PutObjectRequest::transaction_items`] as part of a single transaction.
@@ -102,14 +111,25 @@ impl<R: RetryPolicy<E = VssError>> VssClient<R> {
102111 pub async fn put_object (
103112 & self , request : & PutObjectRequest ,
104113 ) -> Result < PutObjectResponse , VssError > {
105- retry (
114+ let request_id: u64 = rand:: random ( ) ;
115+ trace ! (
116+ "Sending PutObjectRequest {} for transaction_items {} and delete_items {}." ,
117+ request_id,
118+ KeyValueVecKeyPrinter ( & request. transaction_items) ,
119+ KeyValueVecKeyPrinter ( & request. delete_items) ,
120+ ) ;
121+ let res = retry (
106122 || async {
107123 let url = format ! ( "{}/putObjects" , self . base_url) ;
108124 self . post_request ( request, & url) . await
109125 } ,
110126 & self . retry_policy ,
111127 )
112- . await
128+ . await ;
129+ if let Err ( ref e) = res {
130+ trace ! ( "PutObjectRequest {} failed: {}" , request_id, e) ;
131+ }
132+ res
113133 }
114134
115135 /// Deletes the given `key` and `value` in `request`.
@@ -118,14 +138,24 @@ impl<R: RetryPolicy<E = VssError>> VssClient<R> {
118138 pub async fn delete_object (
119139 & self , request : & DeleteObjectRequest ,
120140 ) -> Result < DeleteObjectResponse , VssError > {
121- retry (
141+ let request_id: u64 = rand:: random ( ) ;
142+ trace ! (
143+ "Sending DeleteObjectRequest {} for key {:?}" ,
144+ request_id,
145+ request. key_value. iter( ) . map( |t| & t. key)
146+ ) ;
147+ let res = retry (
122148 || async {
123149 let url = format ! ( "{}/deleteObject" , self . base_url) ;
124150 self . post_request ( request, & url) . await
125151 } ,
126152 & self . retry_policy ,
127153 )
128- . await
154+ . await ;
155+ if let Err ( ref e) = res {
156+ trace ! ( "DeleteObjectRequest {} failed: {}" , request_id, e) ;
157+ }
158+ res
129159 }
130160
131161 /// Lists keys and their corresponding version for a given [`ListKeyVersionsRequest::store_id`].
@@ -134,14 +164,26 @@ impl<R: RetryPolicy<E = VssError>> VssClient<R> {
134164 pub async fn list_key_versions (
135165 & self , request : & ListKeyVersionsRequest ,
136166 ) -> Result < ListKeyVersionsResponse , VssError > {
137- retry (
167+ let request_id: u64 = rand:: random ( ) ;
168+ trace ! (
169+ "Sending ListKeyVersionsRequest {} for key_prefix {:?}, page_size {:?}, page_token {:?}" ,
170+ request_id,
171+ request. key_prefix,
172+ request. page_size,
173+ request. page_token
174+ ) ;
175+ let res = retry (
138176 || async {
139177 let url = format ! ( "{}/listKeyVersions" , self . base_url) ;
140178 self . post_request ( request, & url) . await
141179 } ,
142180 & self . retry_policy ,
143181 )
144- . await
182+ . await ;
183+ if let Err ( ref e) = res {
184+ trace ! ( "ListKeyVersionsRequest {} failed: {}" , request_id, e) ;
185+ }
186+ res
145187 }
146188
147189 async fn post_request < Rq : Message , Rs : Message + Default > (
0 commit comments