all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Lukas Wagner <l.wagner@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH v2 pve-manager 05/22] api: jobs: vzdump: pass job 'id' parameter
Date: Wed, 13 Dec 2023 17:37:44 +0100	[thread overview]
Message-ID: <20231213163801.392492-6-l.wagner@proxmox.com> (raw)
In-Reply-To: <20231213163801.392492-1-l.wagner@proxmox.com>

This allows us to access us the backup job id in the send_notification
function, where we can set it as metadata for the notification.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
---
 PVE/API2/VZDump.pm | 8 ++++++++
 PVE/Jobs/VZDump.pm | 4 +++-
 PVE/VZDump.pm      | 6 +++---
 3 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/PVE/API2/VZDump.pm b/PVE/API2/VZDump.pm
index f66fc740..6bc0b792 100644
--- a/PVE/API2/VZDump.pm
+++ b/PVE/API2/VZDump.pm
@@ -52,6 +52,14 @@ __PACKAGE__->register_method ({
     parameters => {
 	additionalProperties => 0,
 	properties => PVE::VZDump::Common::json_config_properties({
+	    id => {
+		description => "The ID of the backup job. If set, the 'backup-job' metadata field"
+		    . " of the backup notification will be set to this value.",
+		type => 'string',
+		format => 'pve-configid',
+		maxLength => 64,
+		optional => 1,
+	    },
 	    stdout => {
 		type => 'boolean',
 		description => "Write tar to stdout, not to a file.",
diff --git a/PVE/Jobs/VZDump.pm b/PVE/Jobs/VZDump.pm
index b8e57945..2f7c72ab 100644
--- a/PVE/Jobs/VZDump.pm
+++ b/PVE/Jobs/VZDump.pm
@@ -12,7 +12,7 @@ use PVE::API2::VZDump;
 use base qw(PVE::VZDump::JobBase);
 
 sub run {
-    my ($class, $conf) = @_;
+    my ($class, $conf, $id) = @_;
 
     my $props = $class->properties();
     # remove all non vzdump related options
@@ -20,6 +20,8 @@ sub run {
 	delete $conf->{$opt} if !defined($props->{$opt});
     }
 
+    $conf->{id} = $id;
+
     # Required as string parameters # FIXME why?! we could just check ref()
     for my $key (keys $PVE::VZDump::Common::PROPERTY_STRINGS->%*) {
 	if ($conf->{$key} && ref($conf->{$key}) eq 'HASH') {
diff --git a/PVE/VZDump.pm b/PVE/VZDump.pm
index 4185ed62..0c1ee1c8 100644
--- a/PVE/VZDump.pm
+++ b/PVE/VZDump.pm
@@ -450,6 +450,7 @@ sub send_notification {
     my ($self, $tasklist, $total_time, $err, $detail_pre, $detail_post) = @_;
 
     my $opts = $self->{opts};
+    my $job_id = $opts->{id};
     my $mailto = $opts->{mailto};
     my $cmdline = $self->{cmdline};
     my $policy = $opts->{mailnotification} // 'always';
@@ -495,12 +496,11 @@ sub send_notification {
     };
 
     my $fields = {
-	# TODO: There is no straight-forward way yet to get the
-	# backup job id here... (I think pvescheduler would need
-	# to pass that to the vzdump call?)
 	type => "vzdump",
 	hostname => $hostname,
     };
+    # Add backup-job metadata field in case this is a backup job.
+    $fields->{'backup-job'} = $job_id if $job_id;
 
     my $severity = $failed ? "error" : "info";
     my $email_configured = $mailto && scalar(@$mailto);
-- 
2.39.2





  parent reply	other threads:[~2023-12-13 16:38 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-13 16:37 [pve-devel] [PATCH v2 many 00/22] notifications: notification metadata matching improvements Lukas Wagner
2023-12-13 16:37 ` [pve-devel] [PATCH v2 proxmox 01/22] notify: include 'hostname' metadata field for forwarded mails Lukas Wagner
2024-01-10 11:40   ` [pve-devel] applied: " Wolfgang Bumiller
2023-12-13 16:37 ` [pve-devel] [PATCH v2 proxmox 02/22] notify: include 'type' " Lukas Wagner
2023-12-13 16:37 ` [pve-devel] [PATCH v2 proxmox 03/22] notify: matcher: support lists of values for 'exact' match-field mode Lukas Wagner
2023-12-13 16:37 ` [pve-devel] [PATCH v2 pve-manager 04/22] api: notifications: add 'smtp' to target index Lukas Wagner
2023-12-13 16:37 ` Lukas Wagner [this message]
2023-12-13 16:37 ` [pve-devel] [PATCH v2 pve-manager 06/22] ui: dc: backup: send 'id' property when starting a backup job manually Lukas Wagner
2023-12-13 16:37 ` [pve-devel] [PATCH v2 pve-manager 07/22] ui: dc: backup: show 'Job ID' column Lukas Wagner
2023-12-13 16:37 ` [pve-devel] [PATCH v2 pve-manager 08/22] ui: dc: backup: allow to set custom job id in advanced settings Lukas Wagner
2023-12-13 16:37 ` [pve-devel] [PATCH v2 pve-manager 09/22] api: replication: add 'replication-job' to notification metadata Lukas Wagner
2023-12-13 16:37 ` [pve-devel] [PATCH v2 pve-manager 10/22] ui: replication: show 'Job ID' column Lukas Wagner
2023-12-13 16:37 ` [pve-devel] [PATCH v2 pve-manager 11/22] vzdump: apt: notification: do not include domain in 'hostname' field Lukas Wagner
2023-12-13 16:37 ` [pve-devel] [PATCH v2 pve-manager 12/22] api: replication: include 'hostname' field for notifications Lukas Wagner
2023-12-13 16:37 ` [pve-devel] [PATCH v2 pve-manager 13/22] api: notification: add API for getting known metadata fields/values Lukas Wagner
2023-12-13 16:37 ` [pve-devel] [PATCH v2 pve-manager 14/22] ui: utils: add overrides for translatable notification fields/values Lukas Wagner
2023-12-13 16:37 ` [pve-devel] [PATCH v2 proxmox-widget-toolkit 15/22] combogrid: add 'showClearTrigger' config Lukas Wagner
2023-12-13 16:37 ` [pve-devel] [PATCH v2 proxmox-widget-toolkit 16/22] notification: matcher: match-field: show known fields/values Lukas Wagner
2023-12-13 16:37 ` [pve-devel] [PATCH v2 proxmox-widget-toolkit 17/22] notification: matcher: move match-field formulas to local viewModel Lukas Wagner
2023-12-13 16:37 ` [pve-devel] [PATCH v2 proxmox-widget-toolkit 18/22] notification: matcher: move match-calendar fields to panel Lukas Wagner
2023-12-13 16:37 ` [pve-devel] [PATCH v2 proxmox-widget-toolkit 19/22] notification: matcher: move match-severity " Lukas Wagner
2023-12-13 16:37 ` [pve-devel] [PATCH v2 pve-docs 20/22] notification: clarify that 'hostname' does not include the domain Lukas Wagner
2023-12-13 16:38 ` [pve-devel] [PATCH v2 pve-docs 21/22] notifications: describe new notification metadata fields Lukas Wagner
2023-12-13 16:38 ` [pve-devel] [PATCH v2 pve-docs 22/22] notifications: match-field 'exact'-mode can now match multiple values Lukas Wagner
2024-01-08 10:43 ` [pve-devel] [PATCH v2 many 00/22] notifications: notification metadata matching improvements Lukas Wagner
2024-02-16  9:19 ` Lukas Wagner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231213163801.392492-6-l.wagner@proxmox.com \
    --to=l.wagner@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal