feat(semantic-release): implement for this formula
* Close #165
* Move existing `.kitchen.yml` => `kitchen.vagrant.yml`
* Semi-automated using https://github.com/myii/ssf-formula/pull/30
* Fix errors shown below:
```bash
openssh-formula$ yamllint -s .
./pillar.example
49:3 error duplication of key "AllowUsers" in mapping (key-duplicates)
57:3 error duplication of key "DenyUsers" in mapping (key-duplicates)
63:3 error duplication of key "AllowGroups" in mapping (key-duplicates)
70:3 error duplication of key "DenyGroups" in mapping (key-duplicates)
79:24 warning truthy value should be one of [false, true] (truthy)
80:29 warning truthy value should be one of [false, true] (truthy)
118:4 warning missing starting space in comment (comments)
119:4 warning missing starting space in comment (comments)
119:89 error line too long (122 > 88 characters) (line-length)
120:4 warning missing starting space in comment (comments)
120:89 error line too long (144 > 88 characters) (line-length)
147:30 warning truthy value should be one of [false, true] (truthy)
148:21 warning truthy value should be one of [false, true] (truthy)
149:19 warning truthy value should be one of [false, true] (truthy)
150:32 warning truthy value should be one of [false, true] (truthy)
151:26 warning truthy value should be one of [false, true] (truthy)
152:31 warning truthy value should be one of [false, true] (truthy)
153:32 warning truthy value should be one of [false, true] (truthy)
154:29 warning truthy value should be one of [false, true] (truthy)
155:34 warning truthy value should be one of [false, true] (truthy)
175:8 warning missing starting space in comment (comments)
175:89 error line too long (152 > 88 characters) (line-length)
176:8 warning missing starting space in comment (comments)
176:89 error line too long (126 > 88 characters) (line-length)
177:8 warning missing starting space in comment (comments)
177:89 error line too long (148 > 88 characters) (line-length)
213:18 warning truthy value should be one of [false, true] (truthy)
219:18 warning truthy value should be one of [false, true] (truthy)
225:18 warning truthy value should be one of [false, true] (truthy)
241:22 warning truthy value should be one of [false, true] (truthy)
243:22 warning truthy value should be one of [false, true] (truthy)
244:20 warning truthy value should be one of [false, true] (truthy)
245:21 warning truthy value should be one of [false, true] (truthy)
254:24 warning truthy value should be one of [false, true] (truthy)
255:22 warning truthy value should be one of [false, true] (truthy)
256:23 warning truthy value should be one of [false, true] (truthy)
265:22 warning truthy value should be one of [false, true] (truthy)
268:21 warning truthy value should be one of [false, true] (truthy)
269:20 warning truthy value should be one of [false, true] (truthy)
270:21 warning truthy value should be one of [false, true] (truthy)
279:26 warning truthy value should be one of [false, true] (truthy)
280:24 warning truthy value should be one of [false, true] (truthy)
281:25 warning truthy value should be one of [false, true] (truthy)
307:16 warning truthy value should be one of [false, true] (truthy)
308:6 warning missing starting space in comment (comments)
314:6 warning missing starting space in comment (comments)
316:24 warning truthy value should be one of [false, true] (truthy)
339:89 error line too long (546 > 88 characters) (line-length)
340:89 error line too long (546 > 88 characters) (line-length)
341:89 error line too long (546 > 88 characters) (line-length)
342:89 error line too long (546 > 88 characters) (line-length)
344:4 warning missing starting space in comment (comments)
345:4 warning missing starting space in comment (comments)
357:19 warning truthy value should be one of [false, true] (truthy)
./openssh/osfamilymap.yaml
1:1 warning missing document start "---" (document-start)
./openssh/osfingermap.yaml
1:1 warning missing document start "---" (document-start)
./openssh/osmap.yaml
1:1 warning missing document start "---" (document-start)
./openssh/defaults.yaml
1:1 warning missing document start "---" (document-start)
3:18 warning truthy value should be one of [false, true] (truthy)
6:34 warning too few spaces before comment (comments)
10:25 warning truthy value should be one of [false, true] (truthy)
12:32 warning too few spaces before comment (comments)
16:24 warning truthy value should be one of [false, true] (truthy)
18:24 warning too few spaces before comment (comments)
20:42 warning too few spaces before comment (comments)
27:6 warning missing starting space in comment (comments)
```
5 anni fa |
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- {%- macro files_switch(
- source_files,
- lookup=None,
- default_files_switch=["id", "os_family"],
- indent_width=6,
- use_subpath=False
- ) %}
- {#-
- Returns a valid value for the "source" parameter of a "file.managed"
- state function. This makes easier the usage of the Template Override and
- Files Switch (TOFS) pattern.
- Params:
- * source_files: ordered list of files to look for
- * lookup: key under "<tplroot>:tofs:source_files" to prepend to the
- list of source files
- * default_files_switch: if there's no config (e.g. pillar)
- "<tplroot>:tofs:files_switch" this is the ordered list of grains to
- use as selector switch of the directories under
- "<path_prefix>/files"
- * indent_width: indentation of the result value to conform to YAML
- * use_subpath: defaults to `False` but if set, lookup the source file
- recursively from the current state directory up to `tplroot`
- Example (based on a `tplroot` of `xxx`):
- If we have a state:
- Deploy configuration:
- file.managed:
- - name: /etc/yyy/zzz.conf
- - source: {{ files_switch(
- ["/etc/yyy/zzz.conf", "/etc/yyy/zzz.conf.jinja"],
- lookup="Deploy configuration",
- ) }}
- - template: jinja
- In a minion with id=theminion and os_family=RedHat, it's going to be
- rendered as:
- Deploy configuration:
- file.managed:
- - name: /etc/yyy/zzz.conf
- - source:
- - salt://xxx/files/theminion/etc/yyy/zzz.conf
- - salt://xxx/files/theminion/etc/yyy/zzz.conf.jinja
- - salt://xxx/files/RedHat/etc/yyy/zzz.conf
- - salt://xxx/files/RedHat/etc/yyy/zzz.conf.jinja
- - salt://xxx/files/default/etc/yyy/zzz.conf
- - salt://xxx/files/default/etc/yyy/zzz.conf.jinja
- - template: jinja
- #}
- {#- Get the `tplroot` from `tpldir` #}
- {%- set tplroot = tpldir.split("/")[0] %}
- {%- set path_prefix = salt["config.get"](tplroot ~ ":tofs:path_prefix", tplroot) %}
- {%- set files_dir = salt["config.get"](tplroot ~ ":tofs:dirs:files", "files") %}
- {%- set files_switch_list = salt["config.get"](
- tplroot ~ ":tofs:files_switch", default_files_switch
- ) %}
- {#- Lookup source_files (v2), files (v1), or fallback to an empty list #}
- {%- set src_files = salt["config.get"](
- tplroot ~ ":tofs:source_files:" ~ lookup,
- salt["config.get"](tplroot ~ ":tofs:files:" ~ lookup, []),
- ) %}
- {#- Append the default source_files #}
- {%- set src_files = src_files + source_files %}
- {#- Only add to [""] when supporting older TOFS implementations #}
- {%- set path_prefix_exts = [""] %}
- {%- if use_subpath and tplroot != tpldir %}
- {#- Walk directory tree to find {{ files_dir }} #}
- {%- set subpath_parts = tpldir.lstrip(tplroot).lstrip("/").split("/") %}
- {%- for path in subpath_parts %}
- {%- set subpath = subpath_parts[0 : loop.index] | join("/") %}
- {%- do path_prefix_exts.append("/" ~ subpath) %}
- {%- endfor %}
- {%- endif %}
- {%- for path_prefix_ext in path_prefix_exts | reverse %}
- {%- set path_prefix_inc_ext = path_prefix ~ path_prefix_ext %}
- {#- For older TOFS implementation, use `files_switch` from the config #}
- {#- Use the default, new method otherwise #}
- {%- set fsl = salt["config.get"](
- tplroot ~ path_prefix_ext | replace("/", ":") ~ ":files_switch",
- files_switch_list,
- ) %}
- {#- Append an empty value to evaluate as `default` in the loop below #}
- {%- if "" not in fsl %}
- {%- set fsl = fsl + [""] %}
- {%- endif %}
- {%- for fs in fsl %}
- {%- for src_file in src_files %}
- {%- if fs %}
- {%- set fs_dirs = salt["config.get"](fs, fs) %}
- {%- else %}
- {%- set fs_dirs = salt["config.get"](
- tplroot ~ ":tofs:dirs:default", "default"
- ) %}
- {%- endif %}
- {#- Force the `config.get` lookup result as a list where necessary #}
- {#- since we need to also handle grains that are lists #}
- {%- if fs_dirs is string %}
- {%- set fs_dirs = [fs_dirs] %}
- {%- endif %}
- {%- for fs_dir in fs_dirs %}
- {#- strip empty elements by using a select #}
- {%- set url = (
- [
- "- salt:/",
- path_prefix_inc_ext.strip("/"),
- files_dir.strip("/"),
- fs_dir.strip("/"),
- src_file.strip("/"),
- ]
- | select
- | join("/")
- ) %}
- {{ url | indent(indent_width, true) }}
- {%- endfor %}
- {%- endfor %}
- {%- endfor %}
- {%- endfor %}
- {%- endmacro %}
|