{%- for index_name, index in client.get('index', {}).iteritems() %}
elasticsearch_index_{{ index_name }}:
+
{%- if index.get('enabled', False) %}
- elasticsearch_index_template.present:
+ {% set operation = 'create' %}
+
+ {%- if index.definition is defined %}
+ {% set definition = index.definition %}
+ {%- endif %}
+
+ {%- if index.template is defined %}
{%- import_json index.template as definition %}
+ {%- endif %}
+
+ {%- if definition is defined %}
+ elasticsearch_index_template.present:
- name: {{ index_name }}
- definition: '{{ definition|json }}'
{%- else %}
+ cmd.run:
+ - name: echo "No definition specified for index {{ index_name }}"
+ {%- endif %}
+
+ {%- else %}
+
+ {% set operation = 'delete' %}
elasticsearch_index_template.absent:
- name: {{ index_name }}
{%- endif %}
+
- require:
- pkg: elasticsearch_client_packages
-{%- endfor %}
+{%- 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 }}
{%- endif %}
+
+{%- endfor %}
+
+{%- endif %}
\ No newline at end of file