How can I iterate on files located in files dir of the state?
Example of state dir structure:
generic/
βββ files/
βΒ Β βββ custom1.repo
βΒ Β βββcustom2.repo
βΒ Β βββ ...
βββ init.sls
I need to do something like
{% for file in files %}
install_repo_{{ file }}:
file.managed:
- name: /etc/yum.repos.d/{{ file }}
- source: salt://generic/files/{{ file }}
- template: jinja
{% endfor %}
{% set files = [] %}
{% for f in salt['cp.list_master']() %}
{% if f.startswith('generic/files'') %}
{% do files.append(f) %}
{% endif %}
{% endfor %}
{% for file in files %}
install_repo_{{ file }}:
file.managed:
- name: /etc/yum.repos.d/{{ file }}
- source: salt://generic/files/{{ file }}
- template: jinja
{% endfor %}
@ngortheone, this would be even better:
{% for file in salt['cp.list_master'](prefix='generic/files') %}
install_repo_{{ file }}:
file.managed:
- name: /etc/yum.repos.d/{{ file }}
- source: salt://generic/files/{{ file }}
- template: jinja
{% endfor %}
Although I generally like to keep jinja logic separate from yaml as much as possible, like in the salt-pkg-tests repo, but in this case it doesn't seem too bad.
Most helpful comment