SMOLNET PORTAL home about changes
iAlert declaration easier - reed-alert - Lightweight agentless alerting system for server	Err	bitreich.org	70
hgit clone git://bitreich.org/reed-alert/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/reed-alert/	URL:git://bitreich.org/reed-alert/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/reed-alert/	bitreich.org	70
1Log	/scm/reed-alert/log.gph	bitreich.org	70
1Files	/scm/reed-alert/files.gph	bitreich.org	70
1Refs	/scm/reed-alert/refs.gph	bitreich.org	70
1Tags	/scm/reed-alert/tag	bitreich.org	70
1README	/scm/reed-alert/file/README.gph	bitreich.org	70
1LICENSE	/scm/reed-alert/file/LICENSE.gph	bitreich.org	70
i---	Err	bitreich.org	70
1commit 5bcf5ae779478fbb3233740aa9ce5583a6f0e0bf	/scm/reed-alert/commit/5bcf5ae779478fbb3233740aa9ce5583a6f0e0bf.gph	bitreich.org	70
1parent eb64a97f9c6283cab21d9672be9c4c22ac27dcb0	/scm/reed-alert/commit/eb64a97f9c6283cab21d9672be9c4c22ac27dcb0.gph	bitreich.org	70
hAuthor: Solene Rapenne <solene@perso.pw>	URL:mailto:solene@perso.pw	bitreich.org	70
iDate:   Wed, 10 Jan 2018 20:16:23 +0100	Err	bitreich.org	70
i	Err	bitreich.org	70
iAlert declaration easier	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M functions.lisp                      |      69 ++++++++++++++++++++-----------	Err	bitreich.org	70
i	Err	bitreich.org	70
i1 file changed, 44 insertions(+), 25 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/functions.lisp b/functions.lisp	/scm/reed-alert/file/functions.lisp.gph	bitreich.org	70
i@@ -1,13 +1,29 @@	Err	bitreich.org	70
i (require 'asdf)	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+(defparameter *alerts* '())	Err	bitreich.org	70
i+	Err	bitreich.org	70
i (defun color(num1 num2)	Err	bitreich.org	70
i   (format nil "~a[~a;~am" #\Escape num1 num2))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-(defparameter *red* (color 1 31))	Err	bitreich.org	70
i-(defparameter *white* (color 0 70))	Err	bitreich.org	70
i-(defparameter *green* (color 1 32))	Err	bitreich.org	70
i+(defparameter *red*    (color 1 31))	Err	bitreich.org	70
i+(defparameter *white*  (color 0 70))	Err	bitreich.org	70
i+(defparameter *green*  (color 1 32))	Err	bitreich.org	70
i (defparameter *yellow* (color 0 33))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+;; common-lisp don't have a split string function natively	Err	bitreich.org	70
i+(defun replace-all (string part replacement &key (test #'char=))	Err	bitreich.org	70
i+  (with-output-to-string (out)	Err	bitreich.org	70
i+                         (loop with part-length = (length part)	Err	bitreich.org	70
i+                               for old-pos = 0 then (+ pos part-length)	Err	bitreich.org	70
i+                               for pos = (search part string	Err	bitreich.org	70
i+                                                 :start2 old-pos	Err	bitreich.org	70
i+                                                 :test test)	Err	bitreich.org	70
i+                               do (write-string string out	Err	bitreich.org	70
i+                                                :start old-pos	Err	bitreich.org	70
i+                                                :end (or pos (length string)))	Err	bitreich.org	70
i+                               when pos do (write-string replacement out)	Err	bitreich.org	70
i+                               while pos)))	Err	bitreich.org	70
i+	Err	bitreich.org	70
i (defmacro create-probe(name &body code)	Err	bitreich.org	70
i   `(progn (defun ,name(params) ,@code)))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -21,33 +37,36 @@	Err	bitreich.org	70
i         t	Err	bitreich.org	70
i         (list nil (format nil "return code = ~a" code)))))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-(defun trigger-alert(level function params result)	Err	bitreich.org	70
i-  (format nil "~{~a~}"	Err	bitreich.org	70
i-          (mapcar #'(lambda(x)	Err	bitreich.org	70
i-                      (if (symbolp x)	Err	bitreich.org	70
i-                          (case x	Err	bitreich.org	70
i-                            (+ "")	Err	bitreich.org	70
i-                            (result result)	Err	bitreich.org	70
i-                            (hostname (machine-instance))	Err	bitreich.org	70
i-                            (date (multiple-value-bind	Err	bitreich.org	70
i-                                        (second minute hour day month year)	Err	bitreich.org	70
i-                                      (get-decoded-time)	Err	bitreich.org	70
i-                                    (format nil "~a/~a/~a ~a:~a:~a" year month day hour minute second)))	Err	bitreich.org	70
i-                            (os (software-type))	Err	bitreich.org	70
i-                            (function function)	Err	bitreich.org	70
i-                            (space " ")	Err	bitreich.org	70
i-                            (_ " ")	Err	bitreich.org	70
i-                            (params params)	Err	bitreich.org	70
i-                            (desc (getf params :desc ""))	Err	bitreich.org	70
i-                            (newline #\Newline)	Err	bitreich.org	70
i-                            (level level))	Err	bitreich.org	70
i-                          x))	Err	bitreich.org	70
i-                  (cadr (assoc level *alerts*)))))	Err	bitreich.org	70
i+(defmacro alert(name string)	Err	bitreich.org	70
i+  `(progn (push (list ',name ,string)	Err	bitreich.org	70
i+                *alerts*)))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+(defun trigger-alert(level function params result)	Err	bitreich.org	70
i+  (let* ((notifier-command (assoc level *alerts*))	Err	bitreich.org	70
i+         (command-string (cadr notifier-command)))	Err	bitreich.org	70
i+    (setf command-string (replace-all command-string "%result%"   (format nil "~a" result)))	Err	bitreich.org	70
i+    (setf command-string (replace-all command-string "%hostname%" (machine-instance)))	Err	bitreich.org	70
i+    (setf command-string (replace-all command-string "%os%"       (software-type)))	Err	bitreich.org	70
i+    (setf command-string (replace-all command-string "%function%" (format nil "~a" function)))	Err	bitreich.org	70
i+    (setf command-string (replace-all command-string "%params%"   (format nil "~a" params)))	Err	bitreich.org	70
i+    (setf command-string (replace-all command-string "%desc%"     (getf params :desc "")))	Err	bitreich.org	70
i+    (setf command-string (replace-all command-string "%newline%"  (string #\Newline)))	Err	bitreich.org	70
i+    (setf command-string (replace-all command-string "%level%"    level))	Err	bitreich.org	70
i+    (setf command-string (replace-all command-string "%date%"	Err	bitreich.org	70
i+                                      (multiple-value-bind	Err	bitreich.org	70
i+                                            (second minute hour day month year)	Err	bitreich.org	70
i+                                          (get-decoded-time)	Err	bitreich.org	70
i+                                        (format nil "~a/~a/~a ~a:~a:~a" year month day hour minute second))))	Err	bitreich.org	70
i+    command-string))	Err	bitreich.org	70
i+    	Err	bitreich.org	70
i (defmacro stop-if-error(&body body)	Err	bitreich.org	70
i   `(progn	Err	bitreich.org	70
i      (and ,@body)))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+(defmacro escalation(&body body)	Err	bitreich.org	70
i+  `(progn	Err	bitreich.org	70
i+     (or ,@body)))	Err	bitreich.org	70
i+	Err	bitreich.org	70
i (defmacro =>(level fonction params)	Err	bitreich.org	70
i   `(progn	Err	bitreich.org	70
i      (format t "[~a~a ~20A~a] ~35A" *yellow* ',level ',fonction *white* (getf ',params :desc ',params))	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/reed-alert/commit/5bcf5ae7794...
Content-Typetext/plain; charset=utf-8