diff --git a/filter_plugins/custom.py b/filter_plugins/custom.py index ecd3b97..6ed3f2a 100644 --- a/filter_plugins/custom.py +++ b/filter_plugins/custom.py @@ -1,6 +1,7 @@ __author__ = 'dale mcdiarmid' import re +import os.path def modify_list(values=[], pattern='', replacement='', ignorecase=False): ''' Perform a `re.sub` on every item in the list''' @@ -28,9 +29,16 @@ def extract_role_users(users={}): return role_users +def filename(filename=''): + return os.path.splitext(os.path.basename(filename))[0] + + class FilterModule(object): def filters(self): return {'modify_list': modify_list, 'append_to_list':append_to_list, 'array_to_str':array_to_str, - 'extract_role_users':extract_role_users} \ No newline at end of file + 'extract_role_users':extract_role_users, + 'filename':filename} + +print filename('/etc/elasticsearch/templates/basic.json') \ No newline at end of file diff --git a/handlers/elasticsearch-templates.yml b/handlers/elasticsearch-templates.yml index 797ec62..3441d83 100644 --- a/handlers/elasticsearch-templates.yml +++ b/handlers/elasticsearch-templates.yml @@ -7,28 +7,28 @@ wait_for: port={{es_api_port}} delay=10 - name: Get template files - shell: find . -maxdepth 1 -type f | sed "s#\./##" | sed "s/.json//" chdir=/etc/elasticsearch/templates - register: resultstemplate + find: paths="/etc/elasticsearch/templates" patterns="*.json" + register: templates - name: Install templates without auth uri: - url: http://{{es_api_host}}:{{es_api_port}}/_template/{{item}} + url: "http://{{es_api_host}}:{{es_api_port}}/_template/{{item.path | filename}}" method: PUT status_code: 200 body_format: json - body: "{{ lookup('file', '/etc/elasticsearch/templates/'+item+'.json') }}" + body: "{{ lookup('file', item.path) }}" when: not es_enable_xpack or not es_xpack_features is defined or not '"shield" in es_xpack_features' - with_items: "{{ resultstemplate.stdout_lines }}" + with_items: "{{ templates.files }}" - name: Install templates with auth uri: - url: http://{{es_api_host}}:{{es_api_port}}/_template/{{item}} + url: "http://{{es_api_host}}:{{es_api_port}}/_template/{{item.path | filename}}" method: PUT status_code: 200 user: "{{es_api_basic_auth_username}}" password: "{{es_api_basic_auth_password}}" force_basic_auth: yes body_format: json - body: "{{ lookup('file', '/etc/elasticsearch/templates/'+item+'.json') }}" + body: "{{ lookup('file', item.path) }}" when: es_enable_xpack and es_xpack_features is defined and '"shield" in es_xpack_features' - with_items: "{{ resultstemplate.stdout_lines }}" + with_items: "{{ templates.files }}"