* servers_config should run without service dependency. Service is managed in servers.sls. * dropped nginx_service_reload in favor of extending nginx_service * wait for all file states (create and delete) * create dirs for symlinked filestags/v2.6.1
{%- set tplroot = tpldir.split('/')[0] %} | {%- set tplroot = tpldir.split('/')[0] %} | ||||
{%- from tplroot ~ '/map.jinja' import nginx, sls_block with context %} | {%- from tplroot ~ '/map.jinja' import nginx, sls_block with context %} | ||||
{%- from tplroot ~ '/servers_config.sls' import server_states with context %} | {%- from tplroot ~ '/servers_config.sls' import server_states with context %} | ||||
{%- from tplroot ~ '/service.sls' import service_function with context %} | |||||
{% macro file_requisites(states) %} | {% macro file_requisites(states) %} | ||||
{%- for state in states %} | |||||
- file: {{ state }} | |||||
{%- endfor -%} | |||||
{%- for state in states %} | |||||
- file: {{ state }} | |||||
{%- endfor -%} | |||||
{% endmacro %} | {% endmacro %} | ||||
include: | include: | ||||
- nginx.servers_config | - nginx.servers_config | ||||
{% if server_states|length() > 0 %} | {% if server_states|length() > 0 %} | ||||
nginx_service_reload: | |||||
service.{{ service_function }}: | |||||
- name: {{ nginx.lookup.service }} | |||||
- reload: True | |||||
- use: | |||||
- service: nginx_service | |||||
- listen: | |||||
{{ file_requisites(server_states) }} | |||||
- require: | |||||
{{ file_requisites(server_states) }} | |||||
- service: nginx_service | |||||
extend: | |||||
nginx_service: | |||||
service: | |||||
- reload: True | |||||
- require: | |||||
{{ file_requisites(server_states) }} | |||||
- listen: | |||||
{{ file_requisites(server_states) }} | |||||
{% endif %} | {% endif %} |
file.symlink: | file.symlink: | ||||
{{ sls_block(nginx.servers.symlink_opts) }} | {{ sls_block(nginx.servers.symlink_opts) }} | ||||
- name: {{ server_path(server, state) }} | - name: {{ server_path(server, state) }} | ||||
- makedirs: True | |||||
- target: {{ server_path(server, anti_state) }} | - target: {{ server_path(server, anti_state) }} | ||||
{%- else %} | {%- else %} | ||||
{%- if deleted == True %} | {%- if deleted == True %} | ||||
}} | }} | ||||
- makedirs: True | - makedirs: True | ||||
- template: jinja | - template: jinja | ||||
- require_in: | |||||
- service: nginx_service | |||||
{% if 'source_path' not in settings.config %} | {% if 'source_path' not in settings.config %} | ||||
- context: | - context: | ||||
config: {{ settings.config|json(sort_keys=False) }} | config: {{ settings.config|json(sort_keys=False) }} | ||||
- unless: | - unless: | ||||
- test -e {{ server_curpath(server) }} | - test -e {{ server_curpath(server) }} | ||||
{% endif %} | {% endif %} | ||||
{% do server_states.append(conf_state_id) %} | |||||
{% endif %} | {% endif %} | ||||
{% endif %} | {% endif %} | ||||
{% do server_states.append(conf_state_id) %} | |||||
{% if settings.enabled != None %} | {% if settings.enabled != None %} | ||||
{% set status_state_id = 'server_state_' ~ loop.index0 %} | {% set status_state_id = 'server_state_' ~ loop.index0 %} | ||||
- file: {{ conf_state_id }} | - file: {{ conf_state_id }} | ||||
{% endif %} | {% endif %} | ||||
{% if 'deleted' not in settings or ( 'deleted' in settings and settings.deleted == False ) %} | |||||
{% do server_states.append(status_state_id) %} | {% do server_states.append(status_state_id) %} | ||||
{% endif %} | |||||
{%- endif %} {# enabled != available_dir #} | {%- endif %} {# enabled != available_dir #} | ||||
{% endif %} | {% endif %} | ||||
{% endfor %} | {% endfor %} |