From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 70CC41FF173 for ; Mon, 25 Nov 2024 14:40:26 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 9D52914011; Mon, 25 Nov 2024 14:40:25 +0100 (CET) Date: Mon, 25 Nov 2024 14:40:03 +0100 From: Fabian =?iso-8859-1?q?Gr=FCnbichler?= To: Proxmox Backup Server development discussion References: <20241122144713.299130-1-h.laimer@proxmox.com> <20241122144713.299130-2-h.laimer@proxmox.com> In-Reply-To: <20241122144713.299130-2-h.laimer@proxmox.com> MIME-Version: 1.0 User-Agent: astroid/0.16.0 (https://github.com/astroidmail/astroid) Message-Id: <1732541889.q8m3lvhzkn.astroid@yuna.none> X-SPAM-LEVEL: Spam detection results: 0 AWL 0.049 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 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. 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 v14 01/25] 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 November 22, 2024 3:46 pm, Hannes Laimer wrote: > Signed-off-by: Hannes Laimer > --- > changes since v13: > * drop get_mount_point > * update DATASTORE_DIR_NAME_SCHAME description but you didn't just change the description, this also changed semantics quite a bit? in v13, it was a relative path for removable datastores (which makes a lot of sense - the "path" is the subdir on the mounted device). could we go back to that please? > > pbs-api-types/src/datastore.rs | 25 ++++++++++++++++++++++--- > 1 file changed, 22 insertions(+), 3 deletions(-) > > diff --git a/pbs-api-types/src/datastore.rs b/pbs-api-types/src/datastore.rs > index 711051d05..b722c9ab7 100644 > --- a/pbs-api-types/src/datastore.rs > +++ b/pbs-api-types/src/datastore.rs > @@ -45,7 +45,7 @@ const_regex! { > > pub const CHUNK_DIGEST_FORMAT: ApiStringFormat = ApiStringFormat::Pattern(&SHA256_HEX_REGEX); > > -pub const DIR_NAME_SCHEMA: Schema = StringSchema::new("Directory name") > +pub const DATASTORE_DIR_NAME_SCHEMA: Schema = StringSchema::new("Either the absolute path to the datastore directory, or an absolute on-device path for removable datastores.") because an "absolute on-device path" is an oxymoron and confusing.. > .min_length(1) > .max_length(4096) > .schema(); > @@ -163,6 +163,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")] > @@ -237,7 +240,7 @@ pub const DATASTORE_TUNING_STRING_SCHEMA: Schema = StringSchema::new("Datastore > schema: DATASTORE_SCHEMA, > }, > path: { > - schema: DIR_NAME_SCHEMA, > + schema: DATASTORE_DIR_NAME_SCHEMA, > }, > "notify-user": { > optional: true, > @@ -276,6 +279,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)] > @@ -323,6 +332,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, > } > > #[api] > @@ -357,12 +371,17 @@ 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 self.backing_device.is_some() { > + format!("{DATASTORE_MOUNT_DIR}/{}", self.name) > + } else { > + self.path.clone() > + } > } > > pub fn get_maintenance_mode(&self) -> Option { > -- > 2.39.5 > > > > _______________________________________________ > pbs-devel mailing list > pbs-devel@lists.proxmox.com > https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel > > > _______________________________________________ pbs-devel mailing list pbs-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel