From 45996e38deeeea050507fe099f7e2f4b60ec2cda Mon Sep 17 00:00:00 2001 From: Alexander Weiss Date: Mon, 26 Sep 2022 16:32:30 +0200 Subject: [PATCH] REST backend: handle errors correctly --- src/backend/rest.rs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/backend/rest.rs b/src/backend/rest.rs index 58b25cc..4ff8d3d 100644 --- a/src/backend/rest.rs +++ b/src/backend/rest.rs @@ -136,6 +136,7 @@ impl ReadBackend for RestBackend { .header("Accept", "application/vnd.x.restic.rest.v2") .send() .await? + .error_for_status()? .json::>() .await?; Ok(list.into_iter().map(|i| (i.name, i.size)).collect()) @@ -154,6 +155,7 @@ impl ReadBackend for RestBackend { .get(self.url(tpe, id)) .send() .await? + .error_for_status()? .bytes() .await? .into_iter() @@ -183,6 +185,7 @@ impl ReadBackend for RestBackend { .header("Range", header_value.clone()) .send() .await? + .error_for_status()? .bytes() .await? .into_iter() @@ -203,7 +206,8 @@ impl WriteBackend for RestBackend { self.client .post(self.url.join("?create=true").unwrap()) .send() - .await?; + .await? + .error_for_status()?; Ok(()) }, notify, @@ -223,7 +227,12 @@ impl WriteBackend for RestBackend { Ok(backoff::future::retry_notify( self.backoff.clone(), || async { - req_builder.try_clone().unwrap().send().await?; + req_builder + .try_clone() + .unwrap() + .send() + .await? + .error_for_status()?; Ok(()) }, notify, @@ -236,7 +245,11 @@ impl WriteBackend for RestBackend { Ok(backoff::future::retry_notify( self.backoff.clone(), || async { - self.client.delete(self.url(tpe, id)).send().await?; + self.client + .delete(self.url(tpe, id)) + .send() + .await? + .error_for_status()?; Ok(()) }, notify,