From b9f76a427e70b4b85120edb1713a0e2337cee6c8 Mon Sep 17 00:00:00 2001 From: Wolfgang Bumiller Date: Fri, 25 Nov 2022 11:19:11 +0100 Subject: [PATCH] api-types: add MaintenanceType::Delete Signed-off-by: Wolfgang Bumiller --- pbs-api-types/src/maintenance.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pbs-api-types/src/maintenance.rs b/pbs-api-types/src/maintenance.rs index e46ba90a..1b03ca94 100644 --- a/pbs-api-types/src/maintenance.rs +++ b/pbs-api-types/src/maintenance.rs @@ -46,6 +46,8 @@ pub enum MaintenanceType { ReadOnly, /// Neither read nor write operations are allowed on the datastore. Offline, + /// The datastore is being deleted. + Delete, } serde_plain::derive_display_from_serialize!(MaintenanceType); serde_plain::derive_fromstr_from_deserialize!(MaintenanceType); @@ -76,6 +78,10 @@ pub struct MaintenanceMode { impl MaintenanceMode { pub fn check(&self, operation: Option) -> Result<(), Error> { + if self.ty == MaintenanceType::Delete { + bail!("datastore is being deleted"); + } + let message = percent_encoding::percent_decode_str(self.message.as_deref().unwrap_or("")) .decode_utf8() .unwrap_or(Cow::Borrowed(""));