[pbs-devel] [PATCH proxmox-backup 2/2] fix #6185: client/docs: explicitly mention archive name restrictions

Christian Ebner c.ebner at proxmox.com
Thu Feb 20 16:27:26 CET 2025


On 2/20/25 16:22, Wolfgang Bumiller wrote:
> On Thu, Feb 20, 2025 at 01:09:20PM +0100, Christian Ebner wrote:
>> Mention in the docs and the api parameter description the limitations
>> for archive name labels. They must contain alphanumerics, hyphens and
>> underscores only to match the regex pattern.
>>
>> By setting this in the api parameter description, it will be included
>> in the man page for proxmox-backup-client.
>>
>> Fixes: https://bugzilla.proxmox.com/show_bug.cgi?id=6185
>> Signed-off-by: Christian Ebner <c.ebner at proxmox.com>
>> ---
>>   docs/backup-client.rst                 |  1 +
>>   pbs-client/src/backup_specification.rs | 10 ++++++----
>>   proxmox-backup-client/src/main.rs      |  3 ++-
>>   3 files changed, 9 insertions(+), 5 deletions(-)
>>
>> diff --git a/docs/backup-client.rst b/docs/backup-client.rst
>> index 1c2a98ed8..e11c0142a 100644
>> --- a/docs/backup-client.rst
>> +++ b/docs/backup-client.rst
>> @@ -169,6 +169,7 @@ the client. The format is:
>>   
>>       <archive-name>.<type>:<source-path>
>>   
>> +The ``archive-name`` must contain alphanumerics, hyphens and underscores only.
>>   Common types are ``.pxar`` for file archives and ``.img`` for block
>>   device images. To create a backup of a block device, run the following command:
>>   
>> diff --git a/pbs-client/src/backup_specification.rs b/pbs-client/src/backup_specification.rs
>> index b6fbc555c..ebf7f3f18 100644
>> --- a/pbs-client/src/backup_specification.rs
>> +++ b/pbs-client/src/backup_specification.rs
>> @@ -7,10 +7,12 @@ const_regex! {
>>       BACKUPSPEC_REGEX = r"^([a-zA-Z0-9_-]+\.(pxar|img|conf|log)):(.+)$";
>>   }
>>   
>> -pub const BACKUP_SOURCE_SCHEMA: Schema =
>> -    StringSchema::new("Backup source specification ([<label>:<path>]).")
>> -        .format(&ApiStringFormat::Pattern(&BACKUPSPEC_REGEX))
>> -        .schema();
>> +pub const BACKUP_SOURCE_SCHEMA: Schema = StringSchema::new(
>> +    r###"Backup source specification ([<label>:<path>]), the specification
>> +'label' must contain alphanumerics, hyphens and underscores only."###,
> 
> Is there a reason for including a newline here?
> Why not
> 
>      "Backup source specification ([<label>:<path>]), the specification \
>       'label' must contain alphanumerics, hyphens and underscores only.",

The newline was not intentional, no. Got unnoticed when looking at the 
resulting output.

> 
> When ending a regular quoted string with a backslash, the white space on
> the next line is ignored for the resulting string, so this is the same
> as:
> 
>      "Backup source specification ([<label>:<path>]), the specification 'label' must contain alphanumerics, hyphens and underscores only.",
> 
>> +)
>> +.format(&ApiStringFormat::Pattern(&BACKUPSPEC_REGEX))
>> +.schema();
>>   
>>   pub enum BackupSpecificationType {
>>       PXAR,
>> diff --git a/proxmox-backup-client/src/main.rs b/proxmox-backup-client/src/main.rs
>> index 589a097bb..1647d480a 100644
>> --- a/proxmox-backup-client/src/main.rs
>> +++ b/proxmox-backup-client/src/main.rs
>> @@ -628,7 +628,8 @@ fn spawn_catalog_upload(
>>          properties: {
>>              backupspec: {
>>                  type: Array,
>> -               description: "List of backup source specifications ([<label.ext>:<path>] ...)",
>> +               description: r###"List of backup source specifications ([<label.ext>:<path>] ...),
>> +the specifications 'label' must contain alphanumerics, hyphens and underscores only."###,
> 
> This, too, is weirdly formatted.

Acked, will send a v2 incorporating your feedback, thx!





More information about the pbs-devel mailing list