@@ -161,7 +161,7 @@ fn parse_boot_source_req<'a>(
161161 . map_err ( |e| {
162162 METRICS . put_api_requests . boot_source_fails . inc ( ) ;
163163 Error :: SerdeJson ( e)
164- } ) ?. into_parsed_request ( )
164+ } ) ?. into_parsed_request ( None , method )
165165 . map_err ( |s| {
166166 METRICS . put_api_requests . boot_source_fails . inc ( ) ;
167167 Error :: Generic ( StatusCode :: BadRequest , s)
@@ -210,20 +210,19 @@ fn parse_drives_req<'a>(
210210 1 if method == Method :: Get => Ok ( ParsedRequest :: Dummy ) ,
211211
212212 1 if method == Method :: Put => {
213+ let unwrapped_id = id_from_path. ok_or ( Error :: InvalidID ) ?;
213214 METRICS . put_api_requests . drive_count . inc ( ) ;
214215
215216 let device_cfg = serde_json:: from_slice :: < BlockDeviceConfig > ( body) . map_err ( |e| {
216217 METRICS . put_api_requests . drive_fails . inc ( ) ;
217218 Error :: SerdeJson ( e)
218219 } ) ?;
219- device_cfg. check_id ( id_from_path. unwrap ( ) ) . map_err ( |s| {
220- METRICS . put_api_requests . drive_fails . inc ( ) ;
221- Error :: Generic ( StatusCode :: BadRequest , format ! ( "{:?}" , s) )
222- } ) ?;
223- Ok ( device_cfg. into_parsed_request ( None , method) . map_err ( |s| {
224- METRICS . put_api_requests . drive_fails . inc ( ) ;
225- Error :: Generic ( StatusCode :: BadRequest , s)
226- } ) ?)
220+ Ok ( device_cfg
221+ . into_parsed_request ( Some ( unwrapped_id. to_string ( ) ) , method)
222+ . map_err ( |s| {
223+ METRICS . put_api_requests . drive_fails . inc ( ) ;
224+ Error :: Generic ( StatusCode :: BadRequest , s)
225+ } ) ?)
227226 }
228227
229228 1 if method == Method :: Patch => {
@@ -261,7 +260,7 @@ fn parse_logger_req<'a>(
261260 . map_err ( |e| {
262261 METRICS . put_api_requests . logger_fails . inc ( ) ;
263262 Error :: SerdeJson ( e)
264- } ) ?. into_parsed_request ( )
263+ } ) ?. into_parsed_request ( None , method )
265264 . map_err ( |s| {
266265 METRICS . put_api_requests . logger_fails . inc ( ) ;
267266 Error :: Generic ( StatusCode :: BadRequest , s)
@@ -332,7 +331,7 @@ fn parse_netif_req<'a>(
332331 . map_err ( |e| {
333332 METRICS . put_api_requests . network_fails . inc ( ) ;
334333 Error :: SerdeJson ( e)
335- } ) ?. into_parsed_request ( unwrapped_id)
334+ } ) ?. into_parsed_request ( Some ( unwrapped_id. to_string ( ) ) , method )
336335 . map_err ( |s| {
337336 METRICS . put_api_requests . network_fails . inc ( ) ;
338337 Error :: Generic ( StatusCode :: BadRequest , s)
@@ -873,7 +872,7 @@ mod tests {
873872 rate_limiter : None ,
874873 } ;
875874
876- match drive_desc. into_parsed_request ( None , Method :: Put ) {
875+ match drive_desc. into_parsed_request ( Some ( String :: from ( "bar" ) ) , Method :: Put ) {
877876 Ok ( pr) => match parse_drives_req (
878877 & "/foo/bar" [ 1 ..] . split_terminator ( '/' ) . collect ( ) ,
879878 & "/foo/bar" ,
@@ -1142,7 +1141,7 @@ mod tests {
11421141 allow_mmds_requests : false ,
11431142 } ;
11441143
1145- match netif. into_parsed_request ( "bar" ) {
1144+ match netif. into_parsed_request ( Some ( String :: from ( "bar" ) ) , Method :: Put ) {
11461145 Ok ( pr) => match parse_netif_req (
11471146 & "/foo/bar" [ 1 ..] . split_terminator ( '/' ) . collect ( ) ,
11481147 & "/foo/bar" ,
0 commit comments