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

Thomas Lamprecht
2026-04-01T09:55:33Z

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?

----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,
},