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 000271FF13A for ; Wed, 01 Apr 2026 11:55:33 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 5DBE116889; Wed, 1 Apr 2026 11:56:02 +0200 (CEST) Message-ID: <85e49408-7899-49b4-82d8-8aad320a9c04@proxmox.com> Date: Wed, 1 Apr 2026 11:55:57 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta Subject: Re: [PATCH manager] api: backup: add return schema for backup jobs To: Lukas Wagner , pve-devel@lists.proxmox.com References: <20260327152015.394455-1-l.wagner@proxmox.com> Content-Language: en-US From: Thomas Lamprecht In-Reply-To: <20260327152015.394455-1-l.wagner@proxmox.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1775037300824 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.151 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 POISEN_SPAM_PILL 0.1 Meta: its spam POISEN_SPAM_PILL_1 0.1 random spam to be learned in bayes POISEN_SPAM_PILL_3 0.1 random spam to be learned in bayes SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: 5F4ED4PV62FZGSTUWJDA2RQXX7DT36CC X-Message-ID-Hash: 5F4ED4PV62FZGSTUWJDA2RQXX7DT36CC X-MailFrom: t.lamprecht@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Am 27.03.26 um 16:19 schrieb Lukas Wagner: > The GET /cluster/backup and /cluster/backup/ 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 > --- > 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, },