|
47 | 47 | ~ map_sources |
48 | 48 | ) %} |
49 | 49 |
|
| 50 | +{#- Lookup with `config.get` from configurable roots #} |
| 51 | +{%- do salt["log.debug"]( |
| 52 | + "map.jinja: initialise 'config.get' roots with 'tplroot' " |
| 53 | + ~ tplroot |
| 54 | + ) %} |
| 55 | +{%- set config_get_roots = [tplroot] %} |
| 56 | +{#- Configure `config.get` from defaults.yaml #} |
| 57 | +{%- set config_get_roots = default_settings | traverse( |
| 58 | + "values:map_jinja:config_get_roots", |
| 59 | + config_get_roots |
| 60 | + ) %} |
| 61 | +{#- Lookup global `config.get` roots #} |
| 62 | +{%- set config_get_roots = salt["config.get"]( |
| 63 | + "map_jinja:config_get_roots", |
| 64 | + config_get_roots |
| 65 | + ) %} |
| 66 | +{#- Lookup per formula `config.get` roots #} |
| 67 | +{%- set config_get_roots = salt["config.get"]( |
| 68 | + tplroot ~ ":map_jinja:config_get_roots", |
| 69 | + config_get_roots, |
| 70 | + ) %} |
| 71 | +{%- do salt["log.debug"]( |
| 72 | + "map.jinja: load parameters with 'config.get' from roots " |
| 73 | + ~ config_get_roots |
| 74 | + ) %} |
50 | 75 |
|
51 | 76 | {#- Work around assignment inside for loop #} |
52 | 77 | {#- load configuration values used in `config.get` merging strategies #} |
|
85 | 110 | {#- process each `map.jinja` source #} |
86 | 111 | {%- for map_source in map_sources %} |
87 | 112 | {%- if map_source in ["config_get", "config_get_lookup"] %} |
88 | | -{%- set _config_key = { |
89 | | - "config_get": tplroot, |
90 | | - "config_get_lookup": tplroot ~ ":lookup", |
91 | | - }.get(map_source) %} |
92 | | -{%- set _config_type = { |
93 | | - "config_get": "configuration", |
94 | | - "config_get_lookup": "lookup", |
95 | | - }.get(map_source) %} |
96 | | - |
97 | | -{%- do salt["log.debug"]( |
98 | | - "map.jinja: retrieve formula " |
99 | | - ~ _config_type |
100 | | - ~ " with 'config.get'" |
101 | | - ~ _config["merge_msg"] |
102 | | - ) %} |
103 | | -{%- set _config_get = salt["config.get"]( |
104 | | - _config_key, default={}, **_config["merge_opt"] |
105 | | - ) %} |
| 113 | +{%- for _config_root in config_get_roots %} |
| 114 | +{%- set _config_key = { |
| 115 | + "config_get": _config_root, |
| 116 | + "config_get_lookup": _config_root ~ ":lookup", |
| 117 | + }.get(map_source) %} |
| 118 | + |
| 119 | +{%- do salt["log.debug"]( |
| 120 | + "map.jinja: retrieve '" |
| 121 | + ~ _config_key |
| 122 | + ~ "' with 'config.get'" |
| 123 | + ~ _config["merge_msg"] |
| 124 | + ) %} |
| 125 | +{%- set _config_get = salt["config.get"]( |
| 126 | + _config_key, default={}, **_config["merge_opt"] |
| 127 | + ) %} |
106 | 128 |
|
107 | | -{#- `slsutil.merge` defaults to `smart` instead of `None` for `config.get` #} |
108 | | -{%- set _strategy = _config["merge_strategy"] | default("smart", boolean=True) %} |
109 | | -{%- do salt["log.debug"]( |
110 | | - "map.jinja: merge formula " |
111 | | - ~ _config_type |
112 | | - ~ " retrieved with 'config.get'" |
113 | | - ~ ", merge: strategy='" |
114 | | - ~ _strategy |
115 | | - ~ "', lists='" |
116 | | - ~ _config["merge_lists"] |
117 | | - ~ "'" |
118 | | - ) %} |
119 | | -{%- do _config.update( |
120 | | - { |
121 | | - "stack": salt["slsutil.merge"]( |
122 | | - _config["stack"], |
123 | | - _config_get, |
124 | | - strategy=_strategy, |
125 | | - merge_lists=_config["merge_lists"], |
126 | | - ) |
127 | | - } |
128 | | - ) %} |
| 129 | +{#- `slsutil.merge` defaults to `smart` instead of `None` for `config.get` #} |
| 130 | +{%- set _strategy = _config["merge_strategy"] | default("smart", boolean=True) %} |
| 131 | +{%- do salt["log.debug"]( |
| 132 | + "map.jinja: merge '" |
| 133 | + ~ _config_key |
| 134 | + ~ "' retrieved with 'config.get'" |
| 135 | + ~ ", merge: strategy='" |
| 136 | + ~ _strategy |
| 137 | + ~ "', lists='" |
| 138 | + ~ _config["merge_lists"] |
| 139 | + ~ "'" |
| 140 | + ) %} |
| 141 | + |
| 142 | +{#- Keep values under each root key when there are more than one #} |
| 143 | +{%- if config_get_roots|length > 1 %} |
| 144 | +{%- set _config_get = { _config_root: _config_get } %} |
| 145 | +{%- endif %} |
| 146 | +{%- do _config.update( |
| 147 | + { |
| 148 | + "stack": salt["slsutil.merge"]( |
| 149 | + _config["stack"], |
| 150 | + _config_get, |
| 151 | + strategy=_strategy, |
| 152 | + merge_lists=_config["merge_lists"], |
| 153 | + ) |
| 154 | + } |
| 155 | + ) %} |
| 156 | +{%- endfor %} |
129 | 157 | {%- else %} |
130 | 158 | {#- Lookup the grain/pillar/... #} |
131 | 159 | {#- Fallback to use the source name as a direct filename #} |
|
0 commit comments