Re: [PATCH manager] api: backup: add return schema for backup jobs

Lukas Wagner
2026-04-01T10:01:12Z

On Wed Apr 1, 2026 at 11:55 AM CEST, Thomas Lamprecht wrote:
> Am 27.03.26 um 16:19 schrieb Lukas Wagner:
>> The GET /cluster/backup and /cluster/backup/<jobid> endpoints were
>> missing a proper return value schema. The schema properties themselves
>> were copied from the POST call, but needed to be slightly adapted.
>>
>> - id is a pve-backup-jobid, since this is what was used before
>> - fleecing, performance and prune-backups are submitted as a property
>> string, but returned as a proper JSON object, so these needed to be
>> overridden from the base config that stems from pve-guest-common
>> - 'next-run' was added
>>
>> Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
>> ---
>> PVE/API2/Backup.pm | 79 ++++++++++++++++++++++++++++++++++++++++++++--
>> 1 file changed, 76 insertions(+), 3 deletions(-)
>>
>> diff --git a/PVE/API2/Backup.pm b/PVE/API2/Backup.pm
>> index 27f5a14c..8317d0c3 100644
>> --- a/PVE/API2/Backup.pm
>> +++ b/PVE/API2/Backup.pm
>> @@ -120,6 +120,80 @@ my $schedule_param_check = sub {
>> delete $param->{dow};
>> };
>>
>> +my $backup_job_return_schema = PVE::VZDump::Common::json_config_properties({
>> + id => get_standard_option('pve-backup-jobid'),
>> + schedule => {
>> + description => "Backup schedule. The format is a subset of `systemd` calendar events.",
>> + type => 'string',
>> + format => 'pve-calendar-event',
>> + maxLength => 128,
>> + optional => 1,
>> + },
>> + starttime => {
>> + type => 'string',
>> + description => "Job Start time.",
>> + pattern => '\d{1,2}:\d{1,2}',
>> + typetext => 'HH:MM',
>> + optional => 1,
>> + },
>> + dow => {
>> + type => 'string',
>> + format => 'pve-day-of-week-list',
>> + optional => 1,
>> + description => "Day of week selection.",
>> + requires => 'starttime',
>> + default => ALL_DAYS,
>> + },
>
> I'd apply this with the following on-top or squashed-in, ack?

ack; looks good to me!

>
> ----8<----
> diff --git a/PVE/API2/Backup.pm b/PVE/API2/Backup.pm
> index 8317d0c38..1d6d42570 100644
> --- a/PVE/API2/Backup.pm
> +++ b/PVE/API2/Backup.pm
> @@ -131,7 +131,7 @@ my $backup_job_return_schema = PVE::VZDump::Common::json_config_properties({
> },
> starttime => {
> type => 'string',
> - description => "Job Start time.",
> + description => "Job start-time (server timezone); deprecated and replaced by schedule.",
> pattern => '\d{1,2}:\d{1,2}',
> typetext => 'HH:MM',
> optional => 1,
> @@ -140,7 +140,7 @@ my $backup_job_return_schema = PVE::VZDump::Common::json_config_properties({
> type => 'string',
> format => 'pve-day-of-week-list',
> optional => 1,
> - description => "Day of week selection.",
> + description => "Day of week selection; deprecated and replaced by schedule.",
> requires => 'starttime',
> default => ALL_DAYS,
> },