Code Review
/
salt-formulas
/
elasticsearch.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Merge "Add SSL support to Elasticsearch"
[salt-formulas/elasticsearch.git]
/
elasticsearch
/
client
/
init.sls
diff --git
a/elasticsearch/client/init.sls
b/elasticsearch/client/init.sls
index 9621bbbe329e7fd7024dd90855307b342173b79e..b8ceb57a1c7c58566b15f2c563f577f3abb752d1 100644
(file)
--- a/
elasticsearch/client/init.sls
+++ b/
elasticsearch/client/init.sls
@@
-4,19
+4,73
@@
include:
- elasticsearch.client.service
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() %}
{%- 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 -sfk {{ client.server.get("scheme", "http") }}://{{ 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 }}:
elasticsearch_index_{{ index_name }}:
+
{%- if index.get('enabled', False) %}
{%- if index.get('enabled', False) %}
- elasticsearch_index_template.present:
+ {% set operation = 'present' %}
+
+ {%- if index.definition is defined %}
+ {% set definition = index.definition %}
+ {%- endif %}
+
+ {%- if index.template is defined %}
{%- import_json index.template as definition %}
{%- import_json index.template as 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 %}
- name: {{ index_name }}
- definition: '{{ definition|json }}'
{%- else %}
+ cmd.run:
+ - name: echo "No definition specified for index {{ index_name }}"
+ {%- endif %}
+
+ {%- else %}
+
+ {% set operation = 'delete' %}
+ {%- if force_compatibility %}
elasticsearch_index_template.absent:
elasticsearch_index_template.absent:
+ {%- else %}
+ elasticsearch.index_template_absent:
+ {%- endif %}
- name: {{ index_name }}
{%- endif %}
- name: {{ index_name }}
{%- endif %}
+
- require:
- pkg: elasticsearch_client_packages
- require:
- pkg: elasticsearch_client_packages
+
+{%- if index.get('force_operation', False) %}
+elasticsearch_index_{{ index_name }}_{{ operation }}:
+ {% set curdate = None | strftime('%Y.%m.%d') %}
+ elasticsearch.index_{{ operation }}:
+ - name: {{ index_name }}-{{ curdate }}
+{%- endif %}
+
{%- endfor %}
{%- endif %}
{%- endfor %}
{%- endif %}