include:
- elasticsearch.client.service
+{%- if grains['saltversioninfo'][0] < 2017 or
+ (grains['saltversioninfo'][0] == 2017 and grains['saltversioninfo'][1] < 7) %}
+ {# Since Salt 2017.7 new elasticsearch state is used and elasticsearch_index_... deprecated #}
+ {% set force_compatibility = True %}
+{%- else %}
+ {% set force_compatibility = False %}
+{%- endif %}
+
{%- for index_name, index in client.get('index', {}).iteritems() %}
+# TODO: "Replace with module.run when bug is fixed".
+# Since bug in retry logic in salt (#49895) we need to use a workaround for now.
+elasticsearch_check_cluster_status_before_creating_index_{{ index_name }}:
+ cmd.run:
+ - name: curl -sf {{ client.server.host }}:{{ client.server.port }}/_cat/health | awk '{print $4}' | grep green
+ - retry:
+ attempts: 5
+ until: True
+ interval: 10
+ splay: 5
+
elasticsearch_index_{{ index_name }}:
{%- if index.get('enabled', False) %}
- {% set operation = 'create' %}
+ {% set operation = 'present' %}
{%- if index.definition is defined %}
{% set definition = index.definition %}
{%- endif %}
{%- if definition is defined %}
+ {%- if force_compatibility %}
elasticsearch_index_template.present:
+ {%- else %}
+ elasticsearch.index_template_present:
+ {%- endif %}
- name: {{ index_name }}
- definition: '{{ definition|json }}'
{%- else %}
{%- else %}
{% set operation = 'delete' %}
+ {%- if force_compatibility %}
elasticsearch_index_template.absent:
+ {%- else %}
+ elasticsearch.index_template_absent:
+ {%- endif %}
- name: {{ index_name }}
{%- endif %}
{%- if index.get('force_operation', False) %}
elasticsearch_index_{{ index_name }}_{{ operation }}:
{% set curdate = None | strftime('%Y.%m.%d') %}
- module.run:
- - name: elasticsearch.index_{{ operation }}
- - index: {{ index_name }}-{{ curdate }}
+ elasticsearch.index_{{ operation }}:
+ - name: {{ index_name }}-{{ curdate }}
{%- endif %}
{%- endfor %}
-{%- endif %}
\ No newline at end of file
+{%- endif %}