From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 701771FF38D for ; Fri, 3 May 2024 13:34:34 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 1A74936C87; Fri, 3 May 2024 13:34:34 +0200 (CEST) Date: Fri, 03 May 2024 13:34:01 +0200 Message-Id: To: "Proxmox Backup Server development discussion" From: "Max Carrara" Mime-Version: 1.0 X-Mailer: aerc 0.17.0-72-g6a84f1331f1c References: <20240425065315.42617-1-h.laimer@proxmox.com> <20240425065315.42617-4-h.laimer@proxmox.com> In-Reply-To: <20240425065315.42617-4-h.laimer@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL 0.027 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: Re: [pbs-devel] [PATCH proxmox-backup v10 03/26] pbs-api-types: add backing-device to DataStoreConfig X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Backup Server development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" On Thu Apr 25, 2024 at 8:52 AM CEST, Hannes Laimer wrote: > Signed-off-by: Hannes Laimer > --- > pbs-api-types/src/datastore.rs | 27 ++++++++++++++++++++++++++- > 1 file changed, 26 insertions(+), 1 deletion(-) > > diff --git a/pbs-api-types/src/datastore.rs b/pbs-api-types/src/datastore.rs > index a5704c93..e5c5cfcf 100644 > --- a/pbs-api-types/src/datastore.rs > +++ b/pbs-api-types/src/datastore.rs > @@ -160,6 +160,9 @@ pub const PRUNE_SCHEMA_KEEP_YEARLY: Schema = > .minimum(1) > .schema(); > > +/// Base directory where datastores are mounted > +pub const DATASTORE_MOUNT_DIR: &str = "/mnt/datastore"; > + > #[api] > #[derive(Debug, Default, Copy, Clone, PartialEq, Eq, Serialize, Deserialize)] > #[serde(rename_all = "lowercase")] > @@ -273,6 +276,12 @@ pub const DATASTORE_TUNING_STRING_SCHEMA: Schema = StringSchema::new("Datastore > format: &ApiStringFormat::PropertyString(&MaintenanceMode::API_SCHEMA), > type: String, > }, > + "backing-device": { > + description: "The UUID of the filesystem partition for removable datastores.", > + optional: true, > + format: &proxmox_schema::api_types::UUID_FORMAT, > + type: String, > + } > } > )] > #[derive(Serialize, Deserialize, Updater, Clone, PartialEq)] > @@ -320,6 +329,11 @@ pub struct DataStoreConfig { > /// Maintenance mode, type is either 'offline' or 'read-only', message should be enclosed in " > #[serde(skip_serializing_if = "Option::is_none")] > pub maintenance_mode: Option, > + > + /// The UUID of the device(for removable datastores) > + #[updater(skip)] > + #[serde(skip_serializing_if = "Option::is_none")] > + pub backing_device: Option, Here as well, maybe better to use our own UUID type. It even has serde support :) > } > > #[api] > @@ -354,12 +368,23 @@ impl DataStoreConfig { > notification_mode: None, > tuning: None, > maintenance_mode: None, > + backing_device: None, > } > } > > /// Returns the absolute path to the datastore content. > pub fn absolute_path(&self) -> String { > - self.path.clone() > + if let Some(mount_point) = self.get_mount_point() { > + format!("{mount_point}/{}", self.path.trim_matches('/')) > + } else { > + self.path.clone() > + } > + } > + > + pub fn get_mount_point(&self) -> Option { > + self.backing_device > + .is_some() > + .then(|| format!("{DATASTORE_MOUNT_DIR}/{}", self.name)) > } > > pub fn get_maintenance_mode(&self) -> Option { _______________________________________________ pbs-devel mailing list pbs-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel