We assume that users want update notifications for production systems.
Those systems should also have an active subscription.

Signed-off-by: Dominic Jäger <d.jae...@proxmox.com>
---
v2: new

 PVE/API2/APT.pm | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/PVE/API2/APT.pm b/PVE/API2/APT.pm
index bd60db33..b6a86595 100644
--- a/PVE/API2/APT.pm
+++ b/PVE/API2/APT.pm
@@ -36,6 +36,15 @@ my $get_apt_cache = sub {
     return $apt_cache;
 };
 
+# avoid a wall of text in the code
+my $get_subscription_message = sub {
+    my $hostname = shift;
+    return "You do not have a valid subscription for the server 
'$hostname'.\n\n" .
+    "A subscription gives access to the Proxmox VE Enterprise Repository.\n" .
+    "This repository contains the most stable packages and is recommended for 
production use.\n" .
+    "Please visit www.proxmox.com to get a list of available options.\n\n\n"
+};
+
 use base qw(PVE::RESTHandler);
 
 __PACKAGE__->register_method({
@@ -345,7 +354,12 @@ __PACKAGE__->register_method({
                    my $mailfrom = $dcconf->{email_from} || "root";
                    my $subject = "New software packages available ($hostname)";
 
-                   my $data = "The following updates are available:\n\n";
+                   my $info = PVE::INotify::read_file('subscription');
+                   my $has_subscription = $info && $info->{status} eq 'Active';
+
+                   my $data = "";
+                   $data .= $get_subscription_message->($hostname) if 
!$has_subscription;
+                   $data .= "The following updates are available:\n\n";
 
                    my $count = 0;
                    foreach my $p (sort {$a->{Package} cmp $b->{Package} } 
@$pkglist) {
-- 
2.30.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to