{%- from "influxdb/map.jinja" import server with context %}
+{% from "linux/map.jinja" import system with context %}
+
{%- if server.enabled %}
+linux_packages:
+ pkg.installed:
+ - pkgs: {{ system.pkgs }}
+
+include:
+ - linux.system.repo
+
influxdb_packages:
pkg.installed:
- names: {{ server.pkgs }}
- require:
- pkg: influxdb_packages
+{%- if not grains.get('noservices', False) %}
+
influxdb_service:
service.running:
- enable: true
- file: influxdb_config
- file: influxdb_default
+{%- endif %}
+
{% set url_for_query = "http://{}:{}/query".format(server.http.bind.address, server.http.bind.port) %}
{% set admin_created = false %}
influxdb_create_admin:
cmd.run:
- name: curl -f -S -POST "{{ url_for_query }}" {{ query_create_admin }} || curl -f -S -POST "{{ admin_url }}" {{ query_create_admin }}
+ {%- if not grains.get('noservices', False) %}
- require:
- service: influxdb_service
+ {%- endif %}
{% set url_for_query = admin_url %}
{% set admin_created = true %}
{%- endif %}
- cmd: influxdb_create_admin
{%- endif %}
# TODO: manage database deletion
+
+ {% for rp in db.get('retention_policy', []) %}
+ {% set rp_name = rp.get('name', 'autogen') %}
+ {% if rp.get('is_default') %}
+ {% set is_default = 'DEFAULT' %}
+ {% else %}
+ {% set is_default = '' %}
+ {% endif %}
+ {% set duration = rp.get('duration', 'INF') %}
+ {% set replication = rp.get('replication', '1') %}
+ {% if rp.get('shard_duration') %}
+ {% set shard_duration = 'SHARD DURATION {}'.format(rp.shard_duration) %}
+ {% else %}
+ {% set shard_duration = '' %}
+ {% endif %}
+ {% set query_retention_policy = 'RETENTION POLICY {} ON {} DURATION {} REPLICATION {} {} {}'.format(
+ rp_name, db.name, duration, replication, shard_duration, is_default)
+ %}
+influxdb_retention_policy_{{db.name}}_{{ rp_name }}:
+ cmd.run:
+
+ - name: curl -s -S -POST "{{ url_for_query }}" --data-urlencode "q=CREATE {{ query_retention_policy }}"|grep -v "policy already exists" || curl -s -S -POST "{{ url_for_query }}" --data-urlencode "q=ALTER {{ query_retention_policy }}"
+ - require:
+ - cmd: influxdb_create_db_{{db.name}}
+ {%- endfor %}
{%- endif %}
{%- endfor %}