Merge branch 'exthandler' into 'master'
add support for configurable pipe handler
this allows user to configure 'pipe' handler which executes given program.
this is needed when user needs to add his/her custom handler.
See merge request !9
diff --git a/README.rst b/README.rst
index 1fd88db..d1d17ee 100644
--- a/README.rst
+++ b/README.rst
@@ -14,7 +14,7 @@
server:
enabled: true
keepalive_warning: 20
- keepalive_critical: 60
+ keepalive_critical: 60
mine_checks: true
database:
engine: redis
@@ -35,6 +35,7 @@
enabled: true
set:
- mail
+ - pipe
stdout:
enabled: true
mail:
@@ -46,6 +47,9 @@
authentication: cram_md5
encryption: ssl
domain: 'domain.cz'
+ pipe:
+ enabled: true
+ command: /usr/bin/tee /tmp/debug
Sensu Dashboard (now uchiwa)
diff --git a/sensu/files/handlers/pipe.json b/sensu/files/handlers/pipe.json
new file mode 100644
index 0000000..f7a3696
--- /dev/null
+++ b/sensu/files/handlers/pipe.json
@@ -0,0 +1,9 @@
+{%- set handler = pillar.sensu.server.handler[handler_name] %}
+{
+ "handlers": {
+ "{{ handler_name }}": {
+ "type": "pipe",
+ "command": "{{ handler.command }}"
+ }
+ }
+}
diff --git a/sensu/server.sls b/sensu/server.sls
index 1dc8d19..a522027 100644
--- a/sensu/server.sls
+++ b/sensu/server.sls
@@ -84,7 +84,7 @@
{%- for handler_name, handler in server.get('handler', {}).iteritems() %}
-{%- if handler_name in ['default', 'flapjack', 'mail', 'sccd', 'stdout', 'statsd', 'slack'] %}
+{%- if handler_name in ['default', 'flapjack', 'mail', 'sccd', 'stdout', 'statsd', 'slack', 'pipe'] %}
{%- include "sensu/server/_handler_"+handler_name+".sls" %}
@@ -148,4 +148,4 @@
- require:
- file: /srv/sensu
-{%- endif %}
\ No newline at end of file
+{%- endif %}
diff --git a/sensu/server/_handler_pipe.sls b/sensu/server/_handler_pipe.sls
new file mode 100644
index 0000000..4c59818
--- /dev/null
+++ b/sensu/server/_handler_pipe.sls
@@ -0,0 +1,11 @@
+
+/etc/sensu/conf.d/handler_pipe.json:
+ file.managed:
+ - source: salt://sensu/files/handlers/pipe.json
+ - template: jinja
+ - defaults:
+ handler_name: "{{ handler_name }}"
+ handler_setting: "handler"
+ - watch_in:
+ - service: service_sensu_server
+ - service: service_sensu_api
diff --git a/tests/pillar/sensu_server.sls b/tests/pillar/sensu_server.sls
index 32ce6ab..e8b7ea8 100644
--- a/tests/pillar/sensu_server.sls
+++ b/tests/pillar/sensu_server.sls
@@ -23,8 +23,12 @@
enabled: true
set:
- mail
+ - pipe
stdout:
enabled: true
+ pipe:
+ enabled: true
+ command: "/usr/bin/tee /tmp/debug"
mail:
mail_to: 'mail@domain.cz'
host: smtp1.domain.cz