|
10 | 10 |
|
11 | 11 | Params:
|
12 | 12 | * source_files: ordered list of files to look for
|
13 |
| - * lookup: key under '<tplroot>:tofs:source_files' to override |
| 13 | + * lookup: key under '<tplroot>:tofs:source_files' to prepend to the |
14 | 14 | list of source files
|
15 | 15 | * default_files_switch: if there's no config (e.g. pillar)
|
16 | 16 | '<tplroot>:tofs:files_switch' this is the ordered list of grains to
|
|
55 | 55 | tplroot ~ ':tofs:files_switch',
|
56 | 56 | default_files_switch
|
57 | 57 | ) %}
|
58 |
| - {#- Lookup source_files (v2), files (v1), or fallback to source_files parameter #} |
| 58 | + {#- Lookup source_files (v2), files (v1), or fallback to an empty list #} |
59 | 59 | {%- set src_files = salt['config.get'](
|
60 | 60 | tplroot ~ ':tofs:source_files:' ~ lookup,
|
61 |
| - salt['config.get']( |
62 |
| - tplroot ~ ':tofs:files:' ~ lookup, |
63 |
| - source_files |
64 |
| - ) |
| 61 | + salt['config.get'](tplroot ~ ':tofs:files:' ~ lookup, []) |
65 | 62 | ) %}
|
| 63 | + {#- Append the default source_files #} |
| 64 | + {%- set src_files = src_files + source_files %} |
66 | 65 | {#- Only add to [''] when supporting older TOFS implementations #}
|
67 | 66 | {%- set path_prefix_exts = [''] %}
|
68 | 67 | {%- if v1_path_prefix != '' %}
|
|
83 | 82 | {%- for fs in fsl %}
|
84 | 83 | {%- for src_file in src_files %}
|
85 | 84 | {%- if fs %}
|
86 |
| - {%- set fs_dir = salt['config.get'](fs, fs) %} |
| 85 | + {%- set fs_dirs = salt['config.get'](fs, fs) %} |
87 | 86 | {%- else %}
|
88 |
| - {%- set fs_dir = salt['config.get'](tplroot ~ ':tofs:dirs:default', 'default') %} |
| 87 | + {%- set fs_dirs = salt['config.get'](tplroot ~ ':tofs:dirs:default', 'default') %} |
89 | 88 | {%- endif %}
|
90 |
| - {%- set url = [ |
91 |
| - '- salt:/', |
92 |
| - path_prefix_inc_ext.strip('/'), |
93 |
| - files_dir.strip('/'), |
94 |
| - fs_dir.strip('/'), |
95 |
| - src_file.strip('/'), |
96 |
| - ] | select | join('/') %} |
| 89 | + {#- Force the `config.get` lookup result as a list where necessary #} |
| 90 | + {#- since we need to also handle grains that are lists #} |
| 91 | + {%- if fs_dirs is string %} |
| 92 | + {%- set fs_dirs = [fs_dirs] %} |
| 93 | + {%- endif %} |
| 94 | + {%- for fs_dir in fs_dirs %} |
| 95 | + {%- set url = [ |
| 96 | + '- salt:/', |
| 97 | + path_prefix_inc_ext.strip('/'), |
| 98 | + files_dir.strip('/'), |
| 99 | + fs_dir.strip('/'), |
| 100 | + src_file.strip('/'), |
| 101 | + ] | select | join('/') %} |
97 | 102 | {{ url | indent(indent_width, true) }}
|
| 103 | + {%- endfor %} |
98 | 104 | {%- endfor %}
|
99 | 105 | {%- endfor %}
|
100 | 106 | {%- endfor %}
|
|
0 commit comments