|
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