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