From e44de1d2fb16be66cf736481579b9a71fc8a0918 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Sat, 22 Dec 2018 23:32:05 +0300 Subject: services: zabbix-front-end: Show location in messages. * gnu/services/monitoring.scm (zabbix-front-end-config): Show location in messages. --- gnu/services/monitoring.scm | 57 ++++++++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 24 deletions(-) (limited to 'gnu/services/monitoring.scm') diff --git a/gnu/services/monitoring.scm b/gnu/services/monitoring.scm index 611448b733..e1b1d9b236 100644 --- a/gnu/services/monitoring.scm +++ b/gnu/services/monitoring.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Sou Bunnbu ;;; Copyright © 2018 Gábor Boskovits -;;; Copyright © 2018 Oleg Pykhalov +;;; Copyright © 2018, 2019 Oleg Pykhalov ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,7 +29,8 @@ #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix records) - #:use-module ((guix ui) #:select (display-hint)) + #:use-module (guix utils) + #:use-module ((guix ui) #:select (display-hint G_)) #:use-module (ice-9 match) #:use-module (ice-9 rdelim) #:use-module (srfi srfi-26) @@ -509,13 +510,12 @@ create it manually.") (number 10051) "Zabbix server port.")) -(define zabbix-front-end-config - (match-lambda - (($ - _ db-host db-port db-name db-user db-password db-secret-file - zabbix-host zabbix-port) - (mixed-text-file "zabbix.conf.php" - "\ +(define (zabbix-front-end-config config) + (match-record config + (%location db-host db-port db-name db-user db-password db-secret-file + zabbix-host zabbix-port) + (mixed-text-file "zabbix.conf.php" + "\ string db-port) "'; $DB['DATABASE'] = '" db-name "'; $DB['USER'] = '" db-user "'; -$DB['PASSWORD'] = '" (if (string-null? db-password) - (if (string-null? db-secret-file) - (raise (condition - (&message - (message "\ -you must provide either 'db-secret-file' or 'db-password'")))) - (string-trim-both - (with-input-from-file db-secret-file - read-string))) - (begin - (display-hint "\ -Consider using @code{db-secret-file} instead of @code{db-password} and unset -@code{db-password} for security in @code{zabbix-front-end-configuration}.") - db-password)) "'; +$DB['PASSWORD'] = '" (let ((file (location-file %location)) + (line (location-line %location)) + (column (location-column %location))) + (if (string-null? db-password) + (if (string-null? db-secret-file) + (raise (make-compound-condition + (condition + (&message + (message + (format #f "no '~A' or '~A' field in your '~A' record" + 'db-secret-file 'db-password + 'zabbix-front-end-configuration)))) + (condition + (&error-location + (location %location))))) + (string-trim-both + (with-input-from-file db-secret-file + read-string))) + (begin + (display-hint (format #f (G_ "~a:~a:~a: ~a: +Consider using @code{db-secret-file} instead of @code{db-password} for better +security.") file line column 'zabbix-front-end-configuration)) + db-password))) "'; // Schema name. Used for IBM DB2 and PostgreSQL. $DB['SCHEMA'] = ''; @@ -548,7 +557,7 @@ $ZBX_SERVER_PORT = '" (number->string zabbix-port) "'; $ZBX_SERVER_NAME = ''; $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG; -")))) +"))) (define %maintenance.inc.php ;; Empty php file to allow us move zabbix-frontend configs to ‘/etc/zabbix’ -- cgit v1.2.3