From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pve-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 04B961FF380 for <inbox@lore.proxmox.com>; Fri, 19 Apr 2024 16:18:16 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id C8CACB11D; Fri, 19 Apr 2024 16:17:59 +0200 (CEST) From: Lukas Wagner <l.wagner@proxmox.com> To: pve-devel@lists.proxmox.com Date: Fri, 19 Apr 2024 16:17:20 +0200 Message-Id: <20240419141723.377507-18-l.wagner@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240419141723.377507-1-l.wagner@proxmox.com> References: <20240419141723.377507-1-l.wagner@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.502 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% CONTENT_AFTER_HTML 1 More content after HTML close tag + other spam signs DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH pve-ha-manager v2 17/20] env: notify: use named templates instead of passing template strings X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/> List-Post: <mailto:pve-devel@lists.proxmox.com> List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com> Signed-off-by: Lukas Wagner <l.wagner@proxmox.com> Tested-by: Folke Gleumes <f.gleumes@proxmox.com> Reviewed-by: Fiona Ebner <f.ebner@proxmox.com> --- debian/pve-ha-manager.install | 3 +++ src/Makefile | 1 + src/PVE/HA/Env/PVE2.pm | 4 ++-- src/PVE/HA/NodeStatus.pm | 20 +------------------ src/PVE/HA/Sim/Env.pm | 3 ++- src/templates/Makefile | 10 ++++++++++ src/templates/default/fencing-body.html.hbs | 14 +++++++++++++ src/templates/default/fencing-body.txt.hbs | 11 ++++++++++ src/templates/default/fencing-subject.txt.hbs | 1 + 9 files changed, 45 insertions(+), 22 deletions(-) create mode 100644 src/templates/Makefile create mode 100644 src/templates/default/fencing-body.html.hbs create mode 100644 src/templates/default/fencing-body.txt.hbs create mode 100644 src/templates/default/fencing-subject.txt.hbs diff --git a/debian/pve-ha-manager.install b/debian/pve-ha-manager.install index a7598a9..0ffbd8d 100644 --- a/debian/pve-ha-manager.install +++ b/debian/pve-ha-manager.install @@ -38,3 +38,6 @@ /usr/share/perl5/PVE/HA/Usage/Static.pm /usr/share/perl5/PVE/Service/pve_ha_crm.pm /usr/share/perl5/PVE/Service/pve_ha_lrm.pm +/usr/share/pve-manager/templates/default/fencing-body.html.hbs +/usr/share/pve-manager/templates/default/fencing-body.txt.hbs +/usr/share/pve-manager/templates/default/fencing-subject.txt.hbs diff --git a/src/Makefile b/src/Makefile index 87bb0de..56bd360 100644 --- a/src/Makefile +++ b/src/Makefile @@ -73,6 +73,7 @@ install: watchdog-mux pve-ha-crm pve-ha-lrm ha-manager.1 pve-ha-crm.8 pve-ha-lrm install -d $(DESTDIR)/$(MAN1DIR) install -m 0644 ha-manager.1 $(DESTDIR)/$(MAN1DIR) gzip -9 $(DESTDIR)/$(MAN1DIR)/ha-manager.1 + $(MAKE) -C templates $@ .PHONY: test test: diff --git a/src/PVE/HA/Env/PVE2.pm b/src/PVE/HA/Env/PVE2.pm index fcb60a9..cb73bcf 100644 --- a/src/PVE/HA/Env/PVE2.pm +++ b/src/PVE/HA/Env/PVE2.pm @@ -221,10 +221,10 @@ sub log { } sub send_notification { - my ($self, $subject, $text, $template_data, $metadata_fields) = @_; + my ($self, $template_name, $template_data, $metadata_fields) = @_; eval { - PVE::Notify::error($subject, $text, $template_data, $metadata_fields); + PVE::Notify::error($template_name, $template_data, $metadata_fields); }; $self->log("warning", "could not notify: $@") if $@; diff --git a/src/PVE/HA/NodeStatus.pm b/src/PVE/HA/NodeStatus.pm index e053c55..9e6d898 100644 --- a/src/PVE/HA/NodeStatus.pm +++ b/src/PVE/HA/NodeStatus.pm @@ -188,23 +188,6 @@ sub update { } } -my $body_template = <<EOT; -{{#verbatim}} -The node '{{node}}' failed and needs manual intervention. - -The PVE HA manager tries to fence it and recover the configured HA resources to -a healthy node if possible. - -Current fence status: {{subject-prefix}} -{{subject}} -{{/verbatim}} - -{{heading-2 "Overall Cluster status:"}} -{{object status-data}} -EOT - -my $subject_template = "{{subject-prefix}}: {{subject}}"; - # assembles a commont text for fence emails my $send_fence_state_email = sub { my ($self, $subject_prefix, $subject, $node) = @_; @@ -228,8 +211,7 @@ my $send_fence_state_email = sub { }; $haenv->send_notification( - $subject_template, - $body_template, + "fencing", $template_data, $metadata_fields, ); diff --git a/src/PVE/HA/Sim/Env.pm b/src/PVE/HA/Sim/Env.pm index d3aea8d..0f77065 100644 --- a/src/PVE/HA/Sim/Env.pm +++ b/src/PVE/HA/Sim/Env.pm @@ -289,11 +289,12 @@ sub log { } sub send_notification { - my ($self, $subject, $text, $properties) = @_; + my ($self, $template_name, $properties) = @_; # The template for the subject is "{{subject-prefix}}: {{subject}}" # We have to perform poor-man's template rendering to pass the test cases. + my $subject = "{{subject-prefix}}: {{subject}}"; $subject = $subject =~ s/\{\{subject-prefix}}/$properties->{"subject-prefix"}/r; $subject = $subject =~ s/\{\{subject}}/$properties->{"subject"}/r; diff --git a/src/templates/Makefile b/src/templates/Makefile new file mode 100644 index 0000000..396759f --- /dev/null +++ b/src/templates/Makefile @@ -0,0 +1,10 @@ +NOTIFICATION_TEMPLATES= \ + default/fencing-subject.txt.hbs \ + default/fencing-body.txt.hbs \ + default/fencing-body.html.hbs \ + +.PHONY: install +install: + install -dm 0755 $(DESTDIR)/usr/share/pve-manager/templates/default + $(foreach i,$(NOTIFICATION_TEMPLATES), \ + install -m644 $(i) $(DESTDIR)/usr/share/pve-manager/templates/$(i) ;) diff --git a/src/templates/default/fencing-body.html.hbs b/src/templates/default/fencing-body.html.hbs new file mode 100644 index 0000000..1420348 --- /dev/null +++ b/src/templates/default/fencing-body.html.hbs @@ -0,0 +1,14 @@ +<html> + <body> + The node '{{node}}' failed and needs manual intervention.<br/><br/> + + The PVE HA manager tries to fence it and recover the configured HA resources to + a healthy node if possible.<br/><br/> + + Current fence status: {{subject-prefix}}<br/> + {{subject}}<br/> + + <h2 style="font-size: 1em">Overall Cluster status:</h2> + {{object status-data}} + </body> +</html> diff --git a/src/templates/default/fencing-body.txt.hbs b/src/templates/default/fencing-body.txt.hbs new file mode 100644 index 0000000..e46a1fd --- /dev/null +++ b/src/templates/default/fencing-body.txt.hbs @@ -0,0 +1,11 @@ +The node '{{node}}' failed and needs manual intervention. + +The PVE HA manager tries to fence it and recover the configured HA resources to +a healthy node if possible. + +Current fence status: {{subject-prefix}} +{{subject}} + +Overall Cluster status: +----------------------- +{{object status-data}} diff --git a/src/templates/default/fencing-subject.txt.hbs b/src/templates/default/fencing-subject.txt.hbs new file mode 100644 index 0000000..43651f9 --- /dev/null +++ b/src/templates/default/fencing-subject.txt.hbs @@ -0,0 +1 @@ +{{subject-prefix}}: {{subject}} -- 2.39.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel