From bc7fd6951d4766aaca113e3e2749170f3c9395f5 Mon Sep 17 00:00:00 2001 From: Tiago Castro Date: Wed, 18 Dec 2024 00:06:01 +0000 Subject: [PATCH] fix(csi/controller): don't return error on host mismatch Signed-off-by: Tiago Castro --- .../src/bin/controller/controller.rs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/control-plane/csi-driver/src/bin/controller/controller.rs b/control-plane/csi-driver/src/bin/controller/controller.rs index 76e057f7b..dc8c691a2 100644 --- a/control-plane/csi-driver/src/bin/controller/controller.rs +++ b/control-plane/csi-driver/src/bin/controller/controller.rs @@ -655,18 +655,17 @@ impl rpc::csi::controller_server::Controller for CsiControllerSvc { } // Do forced volume unpublish as Kubernetes already detached the volume. - RestApiClient::get_client() + if let Err(error) = RestApiClient::get_client() .unpublish_volume(&volume_uuid, true, Some(args.node_id.as_str())) .await - .map_err(|e| match e { - ApiClientError::NotAcceptable(_) => { - Status::ok("Ignoring failure on unpublish due to mismatched host") - } - _ => Status::not_found(format!( - "Failed to unpublish volume {}, error = {:?}", - &args.volume_id, e - )), - })?; + { + if !matches!(error, ApiClientError::NotAcceptable(_)) { + return Err(Status::not_found(format!( + "Failed to unpublish volume {}, error = {error:?}", + &args.volume_id + ))); + } + } req.info_ok(); Ok(Response::new(ControllerUnpublishVolumeResponse {}))