X-Git-Url: https://gerrit.mcp.mirantis.com/gitweb?p=salt-formulas%2Felasticsearch.git;a=blobdiff_plain;f=elasticsearch%2Fclient%2Finit.sls;h=18f4ffc49d7b462910c882d8b99527f8f79bdaf8;hp=9621bbbe329e7fd7024dd90855307b342173b79e;hb=f9ede3488d97b79439c0d04a847db14d750b8f6b;hpb=033675c52d32df928df572630b78e67cb3f624f5 diff --git a/elasticsearch/client/init.sls b/elasticsearch/client/init.sls index 9621bbb..18f4ffc 100644 --- a/elasticsearch/client/init.sls +++ b/elasticsearch/client/init.sls @@ -4,19 +4,79 @@ 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) %} - 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 %} + {%- if force_compatibility %} + elasticsearch_index_template.present: + {%- else %} + elasticsearch.index_template_present: + {%- endif %} - 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: + {%- else %} + elasticsearch.index_template_absent: + {%- endif %} - name: {{ index_name }} {%- endif %} + - require: - pkg: elasticsearch_client_packages + +{%- 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 }} +{%- else %} +elasticsearch_index_{{ index_name }}_{{ operation }}: + module.run: + - name: elasticsearch.index_{{ operation }} + - index: {{ index_name }} +{%- endif %} + {%- endfor %} {%- endif %}