[pbs-devel] [PATCH proxmox-backup v13 03/26] pbs-api-types: add backing-device to DataStoreConfig

Thomas Lamprecht t.lamprecht at proxmox.com
Sun Nov 17 20:27:29 CET 2024


Am 13.11.24 um 16:00 schrieb Hannes Laimer:
> Signed-off-by: Hannes Laimer <h.laimer at proxmox.com>
> ---
> changes since v12:
>  * clearify/improve description of `DATASTORE_DIR_NAME_SCHAME`
> 
>  pbs-api-types/src/datastore.rs | 31 ++++++++++++++++++++++++++++---
>  1 file changed, 28 insertions(+), 3 deletions(-)
> 
> diff --git a/pbs-api-types/src/datastore.rs b/pbs-api-types/src/datastore.rs
> index a5704c93..f6c255d3 100644
> --- a/pbs-api-types/src/datastore.rs
> +++ b/pbs-api-types/src/datastore.rs
> @@ -42,7 +42,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 a relative on-device path for removable datastores.")
>      .min_length(1)
>      .max_length(4096)
>      .schema();
> @@ -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")]
> @@ -234,7 +237,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,
> @@ -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,

FWIW, I get an error about this regex not matching for a USB pen drive I'm testing.

The POST data is:

{
	"name": "samsung-stick-foo",
	"path": "foo",
	"backing-device": "64A5-F009",
	"gc-schedule": "daily",
	"prune-schedule": "daily",
	"comment": "",
	"notification-mode": "notification-system"
}


The data of the usb disk I selected

{
	"3": {
		"devpath": "/dev/sdd",
		"disk-type": "hdd",
		"gpt": false,
		"model": "Flash_Drive_FIT",
		"name": "sdd",
		"partitions": [
			{
				"devpath": "/dev/sdd1",
				"filesystem": "exfat",
				"gpt": false,
				"mounted": false,
				"name": "sdd1",
				"size": 128320719872,
				"used": "filesystem",
				"uuid": "64A5-F009"
			}
		],
		"rpm": null,
		"serial": "0392523110004665",
		"size": 128320801792,
		"status": "unknown",
		"used": "partitions",
		"vendor": "Samsung",
		"wearout": null,
		"wwn": null
	}
}

note: this pen drive is brand new, got just unwrapped and passed through to my dev
VM, and as such it's still coming with the formatting from factoring.

Now, I first did not even expect that it shows up in the selector, but it did, so I'm
wondering if it either should not be available or if it should work to use this disk
too.

No worries, I do not want an immediate fix or the like, just would like to know what's
the expected outcome here is – as I think quite some other users might also plug in their
freshly unwrapped and proudly exfat/vfat formatted pen drives to see how this goes.
That they have to do something might be fine, but a regex not matching error won't
shove them in the right direction I think.




More information about the pbs-devel mailing list