Skip to content

Instantly share code, notes, and snippets.

@aldevar
Last active February 24, 2017 12:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aldevar/f1109833411ef9783ec27f59b06c4286 to your computer and use it in GitHub Desktop.
Save aldevar/f1109833411ef9783ec27f59b06c4286 to your computer and use it in GitHub Desktop.
{% if grains['fqdn'] == 'server1' %}
{% set username = pillar['client'] %}
{% set form_time_date = pillar['form_time_date'] %}
{% if salt['file.contains_regex']('/srv/ftp/users/{{ username }}/README', {{ form_time_date }} %}
delete_entire_dir:
file.absent:
- name: /srv/ftp/users/{{ username }}
{{ endif }}
{{ endif }}
- Rendering SLS prod.ftp24 failed, render error: while parsing a block mapping
in "<unicode string>", line 38, column 9:
- pillar='{"client": "myclient", ...
^
expected <block end>, but found ','
in "<unicode string>", line 38, column 40:
... pillar='{"client": "myclient","form_time_date": "25/02/2017 0 ...
^
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/salt/state.py", line 2532, in render_state
sls, rendered_sls=mods
File "/usr/lib/python2.7/site-packages/salt/template.py", line 79, in compile_template
ret = render(input_data, saltenv, sls, **render_kwargs)
File "/usr/lib/python2.7/site-packages/salt/renderers/yaml.py", line 50, in render
data = load(yaml_data, Loader=get_yaml_loader(argline))
File "/usr/lib64/python2.7/site-packages/yaml/__init__.py", line 71, in load
return loader.get_single_data()
File "/usr/lib64/python2.7/site-packages/yaml/constructor.py", line 37, in get_single_data
node = self.get_single_node()
File "/usr/lib64/python2.7/site-packages/yaml/composer.py", line 36, in get_single_node
document = self.compose_document()
File "/usr/lib64/python2.7/site-packages/yaml/composer.py", line 55, in compose_document
node = self.compose_node(None, None)
File "/usr/lib64/python2.7/site-packages/yaml/composer.py", line 84, in compose_node
node = self.compose_mapping_node(anchor)
File "/usr/lib64/python2.7/site-packages/yaml/composer.py", line 133, in compose_mapping_node
item_value = self.compose_node(node, item_key)
File "/usr/lib64/python2.7/site-packages/yaml/composer.py", line 84, in compose_node
node = self.compose_mapping_node(anchor)
File "/usr/lib64/python2.7/site-packages/yaml/composer.py", line 133, in compose_mapping_node
item_value = self.compose_node(node, item_key)
File "/usr/lib64/python2.7/site-packages/yaml/composer.py", line 82, in compose_node
node = self.compose_sequence_node(anchor)
File "/usr/lib64/python2.7/site-packages/yaml/composer.py", line 111, in compose_sequence_node
node.value.append(self.compose_node(node, index))
File "/usr/lib64/python2.7/site-packages/yaml/composer.py", line 84, in compose_node
node = self.compose_mapping_node(anchor)
File "/usr/lib64/python2.7/site-packages/yaml/composer.py", line 133, in compose_mapping_node
item_value = self.compose_node(node, item_key)
File "/usr/lib64/python2.7/site-packages/yaml/composer.py", line 82, in compose_node
node = self.compose_sequence_node(anchor)
File "/usr/lib64/python2.7/site-packages/yaml/composer.py", line 111, in compose_sequence_node
node.value.append(self.compose_node(node, index))
File "/usr/lib64/python2.7/site-packages/yaml/composer.py", line 84, in compose_node
node = self.compose_mapping_node(anchor)
File "/usr/lib64/python2.7/site-packages/yaml/composer.py", line 127, in compose_mapping_node
while not self.check_event(MappingEndEvent):
File "/usr/lib64/python2.7/site-packages/yaml/parser.py", line 98, in check_event
self.current_event = self.state()
File "/usr/lib64/python2.7/site-packages/yaml/parser.py", line 439, in parse_block_mapping_key
"expected <block end>, but found %r" % token.id, token.start_mark)
ParserError: while parsing a block mapping
in "<unicode string>", line 38, column 9:
- pillar='{"client": "myclient", ...
^
expected <block end>, but found ','
in "<unicode string>", line 38, column 40:
... pillar='{"client": "myclient","form_time_date": "25/02/2017 0 ...
{% if grains['fqdn'] == 'server1' %}
{% set form_time_date = salt['cmd.run']('date --date="tomorrow" +"%d/%m/%Y %H:%M"') %}
{% set time_date = salt['cmd.run']('date --date="tomorrow" +%Y%m%d%H%M') %}
{% set username = pillar['client'] %}
/srv/ftp/users/{{ username }}:
file.directory:
- user: root
- group: root
- name: /srv/ftp/users/{{ username }}
- mode: 755
/srv/ftp/users/{{ username }}/writeable:
file.directory:
- user: {{ username }}
- group : sftpgroup
- name: /srv/ftp/users/{{ username }}/writeable
- mode: 755
noReadme:
file.absent:
- name: /srv/ftp/users/{{ username }}/README
createReadme:
file.append:
- name: /srv/ftp/users/{{ username }}/README
- text :
- "You have access to this server until:"
- {{ form_time_date }}
del_sched:
schedule.present:
- function: state.apply
- job_args:
- prod.ftp24.del
- job_kwargs:
pillar:
"client": "{{ username }}"
"form_time_date": "{{ form_time_date }}"
- hours: 24
- name: {{ username }}_{{ time_date }}
{% endif %}
@xenophonf
Copy link

In del.sls line 6 you have two syntax errors. One cannot embed Jinja expressions to print to the template output within Jinja Statements. You also need a closing parenthesis ()) before the statement end token (%}).

The remaining Pillar data references look OK, but without a sample command (and output), I can't even begin to guess as to what might be going wrong with your salt/salt-call invocation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment