[pve-devel] [PATCH manager] api: backup: auto-inject job id where expected by the API

Fiona Ebner f.ebner at proxmox.com
Tue Nov 15 11:18:29 CET 2022


for backwards compatibility. Otherwise, e.g. listing backup jobs with
pvesh get /cluster/backup is broken. And suddenly not having the
property anymore would be a breaking API change.

Signed-off-by: Fiona Ebner <f.ebner at proxmox.com>
---

I didn't see any other places that rely on the $job->{id} to be set.
The other backup-related API calls and Jobs.pm iterate or check the
ids from the section config's $parsed->{ids}. Scheduler doesn't need
either AFAICT.

@Dominik: I guess you need to adapt the (not-yet-applied) realm sync
jobs API too now that the id is not auto-injected.

 PVE/API2/Backup.pm | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/PVE/API2/Backup.pm b/PVE/API2/Backup.pm
index b6f5916d..3a079874 100644
--- a/PVE/API2/Backup.pm
+++ b/PVE/API2/Backup.pm
@@ -130,6 +130,10 @@ __PACKAGE__->register_method({
 		$job->{'next-run'} = $next_run if defined($next_run);
 	    }
 
+	    # FIXME remove in PVE 8.0?
+	    # backwards compat: before moving the job registry to pve-common, id was auto-injected
+	    $job->{id} = $jobid;
+
 	    push @$res, $job;
 	}
 
@@ -273,7 +277,12 @@ __PACKAGE__->register_method({
 
 	my $jobs_data = cfs_read_file('jobs.cfg');
 	my $job = $jobs_data->{ids}->{$param->{id}};
-	return $job if $job && $job->{type} eq 'vzdump';
+	if ($job && $job->{type} eq 'vzdump') {
+	    # FIXME remove in PVE 8.0?
+	    # backwards compat: before moving the job registry to pve-common, id was auto-injected
+	    $job->{id} = $param->{id};
+	    return $job;
+	}
 
 	raise_param_exc({ id => "No such job '$param->{id}'" });
 
-- 
2.30.2






More information about the pve-devel mailing list