[pve-devel] [PATCH manager 1/2] vzdump jobs: make job ID a standard option
Fabian Grünbichler
f.gruenbichler at proxmox.com
Fri Sep 20 11:05:05 CEST 2024
and put it into PVE::VZDump because there is a cycle between
PVE::Jobs::VZDump, PVE::API2::VZDump and PVE::API2::Backups
that prevents any of those containing it for now.
Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
---
PVE/API2/Backup.pm | 18 ++++++------------
PVE/VZDump.pm | 10 ++++++++++
2 files changed, 16 insertions(+), 12 deletions(-)
diff --git a/PVE/API2/Backup.pm b/PVE/API2/Backup.pm
index 48598b8f4..f37e23931 100644
--- a/PVE/API2/Backup.pm
+++ b/PVE/API2/Backup.pm
@@ -10,7 +10,7 @@ use PVE::Tools qw(extract_param);
use PVE::Cluster qw(cfs_lock_file cfs_read_file cfs_write_file);
use PVE::RESTHandler;
use PVE::RPCEnvironment;
-use PVE::JSONSchema;
+use PVE::JSONSchema qw(get_standard_option);
use PVE::Storage;
use PVE::Exception qw(raise_param_exc);
use PVE::VZDump;
@@ -34,12 +34,6 @@ sub verify_day_of_week {
die "invalid day '$value'\n";
}
-my $vzdump_job_id_prop = {
- type => 'string',
- description => "The job ID.",
- maxLength => 50
-};
-
# NOTE: also used by the vzdump API call.
sub assert_param_permission_common {
my ($rpcenv, $user, $param, $is_delete) = @_;
@@ -142,7 +136,7 @@ __PACKAGE__->register_method({
items => {
type => "object",
properties => {
- id => $vzdump_job_id_prop
+ id => get_standard_option('pve-backup-jobid'),
},
},
links => [ { rel => 'child', href => "{id}" } ],
@@ -298,7 +292,7 @@ __PACKAGE__->register_method({
parameters => {
additionalProperties => 0,
properties => {
- id => $vzdump_job_id_prop
+ id => get_standard_option('pve-backup-jobid'),
},
},
returns => {
@@ -346,7 +340,7 @@ __PACKAGE__->register_method({
parameters => {
additionalProperties => 0,
properties => {
- id => $vzdump_job_id_prop
+ id => get_standard_option('pve-backup-jobid'),
},
},
returns => { type => 'null' },
@@ -412,7 +406,7 @@ __PACKAGE__->register_method({
parameters => {
additionalProperties => 0,
properties => PVE::VZDump::Common::json_config_properties({
- id => $vzdump_job_id_prop,
+ 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',
@@ -570,7 +564,7 @@ __PACKAGE__->register_method({
parameters => {
additionalProperties => 0,
properties => {
- id => $vzdump_job_id_prop
+ id => get_standard_option('pve-backup-jobid'),
},
},
returns => {
diff --git a/PVE/VZDump.pm b/PVE/VZDump.pm
index f1a6b2206..f813bba60 100644
--- a/PVE/VZDump.pm
+++ b/PVE/VZDump.pm
@@ -27,6 +27,16 @@ use PVE::VZDump::Plugin;
use PVE::Tools qw(extract_param split_list);
use PVE::API2Tools;
+# section config header/ID, this needs to cover UUIDs, user given values
+# and `$digest:$counter` values converted from vzdump.cron
+# TODO move to a better place once cycle
+# Jobs::VZDump -> API2::VZDump -> API2::Backups -> Jobs::VZDump is broken..
+PVE::JSONSchema::register_standard_option('pve-backup-jobid', {
+ type => 'string',
+ description => "The job ID.",
+ maxLength => 50,
+});
+
my @posix_filesystems = qw(ext3 ext4 nfs nfs4 reiserfs xfs);
my $lockfile = '/var/run/vzdump.lock';
--
2.39.5
More information about the pve-devel
mailing list