guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/02: services: zabbix-front-end: Restore backwards compatibility.


From: guix-commits
Subject: 01/02: services: zabbix-front-end: Restore backwards compatibility.
Date: Mon, 7 Feb 2022 12:20:06 -0500 (EST)

mbakke pushed a commit to branch master
in repository guix.

commit 326e08bf0f55409f040612001f73a2cc4091c159
Author: Marius Bakke <marius@gnu.org>
AuthorDate: Mon Feb 7 17:47:23 2022 +0100

    services: zabbix-front-end: Restore backwards compatibility.
    
    Commit e301f1a8ed11f9eacb2b7f525a7446dc00621a8b removed the NGINX argument
    entirely, but users may rely on and override it.  Reported by rekado on 
#guix.
    
    * gnu/services/monitoring.scm (%zabbix-front-end-nginx-configuration): 
Restore
    exported variable.
    (zabbix-front-end-nginx-extension): New procedure.
    (zabbix-front-end-configuration): Remove FASTCGI-PARAMS field.  Restore 
NGINX
    field, but default to the empty list.
    (zabbix-front-end-service-type): Extend NGINX-SERVICE-TYPE by
    ZABBIX-FRONT-END-NGINX-EXTENSION.
    * doc/guix.texi (Monitoring Services): Regenerate documentation.
---
 doc/guix.texi               | 19 ++++++++++---------
 gnu/services/monitoring.scm | 38 ++++++++++++++++++++++++++++++++------
 2 files changed, 42 insertions(+), 15 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 9d3548aac7..2a9ef75dfd 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -25804,31 +25804,32 @@ Available @code{zabbix-front-end-configuration} 
fields are:
 @item @code{zabbix-server} (default: @code{zabbix-server}) (type: file-like)
 The Zabbix server package to use.
 
-@item @code{fastcgi-params} (type: list)
-List of FastCGI parameter pairs that will be included in the NGINX
-configuration.
+@item @code{nginx} (default: @code{()}) (type: list)
+List of @pxref{NGINX,@code{nginx-server-configuration}} blocks for the
+Zabbix front-end.  When empty, a default that listens on port 80 is
+used.
 
-@item @code{db-host} (default: @code{\"localhost\"}) (type: string)
+@item @code{db-host} (default: @code{"localhost"}) (type: string)
 Database host name.
 
 @item @code{db-port} (default: @code{5432}) (type: number)
 Database port.
 
-@item @code{db-name} (default: @code{\"zabbix\"}) (type: string)
+@item @code{db-name} (default: @code{"zabbix"}) (type: string)
 Database name.
 
-@item @code{db-user} (default: @code{\"zabbix\"}) (type: string)
+@item @code{db-user} (default: @code{"zabbix"}) (type: string)
 Database user.
 
-@item @code{db-password} (default: @code{\"\"}) (type: string)
+@item @code{db-password} (default: @code{""}) (type: string)
 Database password.  Please, use @code{db-secret-file} instead.
 
-@item @code{db-secret-file} (default: @code{\"\"}) (type: string)
+@item @code{db-secret-file} (default: @code{""}) (type: string)
 Secret file which will be appended to @file{zabbix.conf.php} file.  This
 file contains credentials for use by Zabbix front-end.  You are expected
 to create it manually.
 
-@item @code{zabbix-host} (default: @code{\"localhost\"}) (type: string)
+@item @code{zabbix-host} (default: @code{"localhost"}) (type: string)
 Zabbix server hostname.
 
 @item @code{zabbix-port} (default: @code{10051}) (type: number)
diff --git a/gnu/services/monitoring.scm b/gnu/services/monitoring.scm
index fb893d87cd..fecb60a04f 100644
--- a/gnu/services/monitoring.scm
+++ b/gnu/services/monitoring.scm
@@ -50,7 +50,8 @@
             zabbix-agent-configuration
             zabbix-agent-service-type
             zabbix-front-end-configuration
-            zabbix-front-end-service-type))
+            zabbix-front-end-service-type
+            %zabbix-front-end-configuration-nginx))
 
 
 ;;;
@@ -574,14 +575,39 @@ configuration file."))
                                          fastcgi-params))))))))))
        (listen '("80")))))))
 
+(define %zabbix-front-end-nginx-configuration
+  (nginx-server-configuration
+   (root #~(string-append #$zabbix-server:front-end "/share/zabbix/php"))
+   (index '("index.php"))
+   (locations
+    (let ((php-location (nginx-php-location)))
+      (list (nginx-location-configuration
+             (inherit php-location)
+             (body (append (nginx-location-configuration-body php-location)
+                           (list "
+fastcgi_param PHP_VALUE \"post_max_size = 16M
+                          max_execution_time = 300\";
+")))))))
+   (listen '("80"))))
+
+(define (zabbix-front-end-nginx-extension config)
+  (match config
+    (($ <zabbix-front-end-configuration> _ server nginx)
+     (if (null? nginx)
+         (list
+          (nginx-server-configuration
+           (inherit %zabbix-front-end-nginx-configuration)
+           (root #~(string-append #$server:front-end "/share/zabbix/php"))))
+         nginx))))
+
 (define-configuration zabbix-front-end-configuration
   (zabbix-server
     (file-like zabbix-server)
     "The Zabbix server package to use.")
-  (fastcgi-params
-   (list '(("post_max_size" . "16M")
-           ("max_execution_time" . "300")))
-   "List of FastCGI parameter pairs that will be included in the NGINX 
configuration.")
+  (nginx
+    (list '())
+   "List of @pxref{NGINX, @code{nginx-server-configuration}} blocks for the
+Zabbix front-end.  When empty, a default that listens on port 80 is used.")
   (db-host
    (string "localhost")
    "Database host name.")
@@ -686,7 +712,7 @@ $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
     (list (service-extension activation-service-type
                              zabbix-front-end-activation)
           (service-extension nginx-service-type
-                             zabbix-front-end-nginx-configuration)
+                             zabbix-front-end-nginx-extension)
           ;; Make sure php-fpm is instantiated.
           (service-extension php-fpm-service-type
                              (const #t))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]