Skip to content

Commit 69e9b47

Browse files
authored
Merge pull request saltstack-formulas#168 from dseira/master
New Feature/Improvement - Added deleted option to be able to remove site files
2 parents 6090ce0 + f50c7e2 commit 69e9b47

File tree

2 files changed

+31
-5
lines changed

2 files changed

+31
-5
lines changed

nginx/ng/servers_config.sls

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
{%- endmacro %}
3838
3939
# Creates the sls block that manages symlinking / renaming servers
40-
{% macro manage_status(server, state) -%}
40+
{% macro manage_status(server, state, deleted) -%}
4141
{%- set anti_state = {True:False, False:True}.get(state) -%}
4242
{% if state == True %}
4343
{%- if nginx.lookup.server_use_symlink %}
@@ -46,20 +46,30 @@
4646
- name: {{ server_path(server, state) }}
4747
- target: {{ server_path(server, anti_state) }}
4848
{%- else %}
49+
{%- if deleted == True %}
50+
file.absent:
51+
- name: {{ server_path(server, state) }}
52+
{%- else %}
4953
file.rename:
5054
{{ sls_block(nginx.servers.rename_opts) }}
5155
- name: {{ server_path(server, state) }}
5256
- source: {{ server_path(server, anti_state) }}
57+
{%- endif %}
5358
{%- endif %}
5459
{%- elif state == False %}
5560
{%- if nginx.lookup.server_use_symlink %}
5661
file.absent:
5762
- name: {{ server_path(server, anti_state) }}
5863
{%- else %}
64+
{%- if deleted == True %}
65+
file.absent:
66+
- name: {{ server_path(server, state) }}
67+
{%- else %}
5968
file.rename:
6069
{{ sls_block(nginx.servers.rename_opts) }}
6170
- name: {{ server_path(server, state) }}
6271
- source: {{ server_path(server, anti_state) }}
72+
{%- endif %}
6373
{%- endif -%}
6474
{%- endif -%}
6575
{%- endmacro %}
@@ -84,13 +94,18 @@ nginx_server_available_dir:
8494
8595
# Managed enabled/disabled state for servers
8696
{% for server, settings in nginx.servers.managed.items() %}
87-
{% if settings.config != None %}
97+
{% set conf_state_id = 'server_conf_' ~ loop.index0 %}
98+
{% if 'deleted' in settings and settings.deleted %}
99+
{{ conf_state_id }}:
100+
file.absent:
101+
- name: {{ server_curpath(server) }}
102+
{% else %}
103+
{% if settings.config != None and settings.enabled == True %}
88104
{% if 'source_path' in settings.config %}
89105
{% set source_path = settings.config.source_path %}
90106
{% else %}
91107
{% set source_path = 'salt://nginx/ng/files/server.conf' %}
92108
{% endif %}
93-
{% set conf_state_id = 'server_conf_' ~ loop.index0 %}
94109
{{ conf_state_id }}:
95110
file.managed:
96111
{{ sls_block(nginx.servers.managed_opts) }}
@@ -107,16 +122,23 @@ nginx_server_available_dir:
107122
{% endif %}
108123
{% do server_states.append(conf_state_id) %}
109124
{% endif %}
125+
{% endif %}
110126
111127
{% if settings.enabled != None %}
112128
{% set status_state_id = 'server_state_' ~ loop.index0 %}
113129
{{ status_state_id }}:
114-
{{ manage_status(server, settings.enabled) }}
115-
{% if settings.config != None %}
130+
{% if 'deleted' in settings and settings.deleted %}
131+
{{ manage_status(server, False, True) }}
132+
{% else %}
133+
{{ manage_status(server, settings.enabled, False) }}
134+
{% endif %}
135+
{% if settings.config != None and settings.enabled == True %}
116136
- require:
117137
- file: {{ conf_state_id }}
118138
{% endif %}
119139
140+
{% if 'deleted' not in settings or ( 'deleted' in settings and settings.deleted == False ) %}
120141
{% do server_states.append(status_state_id) %}
121142
{% endif %}
143+
{% endif %}
122144
{% endfor %}

pillar.example

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,10 @@ nginx:
105105
mysite: # relative pathname of the server file
106106
# may be True, False, or None where True is enabled, False, disabled, and None indicates no action
107107
enabled: True
108+
# Remove the site config file. Nice to clean up the conf.d (or sites-available).
109+
# It also remove the symlink (if it is exists).
110+
# The site MUST be disabled before delete it (if not the nginx is not reloaded).
111+
deleted: True
108112
###########
109113
## Modify 'available_dir' AND 'enabled_dir' '/etc/nginx' location to alternative value.
110114
###########

0 commit comments

Comments
 (0)