Create continuous queries, with verbose output.
Better to handle db internals setup from app then from salt.
Note:
Influxdb API call returns 200 even on "issues".
TODO: Influxdb module would do better job than cmd.run + curl
Change-Id: I3d6377d1043cfc77160fb1f9eaeb6c441cbe3a63
diff --git a/influxdb/client.sls b/influxdb/client.sls
index 31d91dc..5ef378e 100644
--- a/influxdb/client.sls
+++ b/influxdb/client.sls
@@ -90,7 +90,8 @@
{%- set query_continuous_query = '{} BEGIN {} END'.format(cq_name_on, cq) %}
influxdb_continuous_query_{{db_name}}_{{ cq_name }}:
cmd.run:
- - name: {{ curl_command }} -s -S -POST "{{ auth_url }}" --data-urlencode "q=CREATE {{ query_continuous_query }}"|grep -v "already exists" || {{ curl_command }} -s -S -POST "{{ auth_url }}" --data-urlencode $'q=DROP {{ cq_name_on }};\nCREATE {{ query_continuous_query }}'| egrep -v error
+ - shell: /bin/bash
+ - name: fail_on() { echo $2; if [[ "$2" == *"$1"* ]]; then return 1; return 0; fi; }; fail_on "already exist" $({{ curl_command }} -s -S -POST "{{ auth_url }}" --data-urlencode "q=CREATE {{ query_continuous_query }}") || fail_on error $({{ curl_command }} -s -S -POST "{{ auth_url }}" --data-urlencode $'q=DROP {{ cq_name_on }};\nCREATE {{ query_continuous_query }}')
- onlyif: {{ curl_command }} -s -S -POST "{{ auth_url }}" --data-urlencode "q=SHOW DATABASES" | grep {{ db_name }}
{%- endfor %}