Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
50808e8efe | ||
|
|
21baf28b2f | ||
|
|
5e6511b783 | ||
|
|
702323c24d | ||
|
|
8735cf8ad1 | ||
|
|
3a3d24a735 | ||
|
|
7978976543 | ||
|
|
44568a6806 |
46
.travis.yml
46
.travis.yml
@@ -59,34 +59,36 @@ jobs:
|
||||
# Make sure the instances listed below match up with
|
||||
# the `platforms` defined in `kitchen.yml`
|
||||
- env: INSTANCE=default-debian-10-master-py3
|
||||
- env: INSTANCE=default-ubuntu-2004-master-py3
|
||||
# - env: INSTANCE=default-ubuntu-1804-master-py3
|
||||
# - env: INSTANCE=default-centos-8-master-py3
|
||||
- env: INSTANCE=default-centos-8-master-py3
|
||||
- env: INSTANCE=default-fedora-32-master-py3
|
||||
# - env: INSTANCE=default-fedora-31-master-py3
|
||||
# - env: INSTANCE=default-opensuse-leap-151-master-py3
|
||||
# - env: INSTANCE=default-amazonlinux-2-master-py3
|
||||
- env: INSTANCE=default-opensuse-leap-152-master-py3
|
||||
- env: INSTANCE=default-amazonlinux-2-master-py3
|
||||
# - env: INSTANCE=default-debian-10-3000-3-py3
|
||||
# - env: INSTANCE=default-debian-9-3000-3-py3
|
||||
# - env: INSTANCE=default-ubuntu-1804-3000-3-py3
|
||||
# - env: INSTANCE=default-centos-8-3000-3-py3
|
||||
# - env: INSTANCE=default-centos-7-3000-3-py3
|
||||
# - env: INSTANCE=default-fedora-31-3000-3-py3
|
||||
# - env: INSTANCE=default-opensuse-leap-152-3000-3-py3
|
||||
# - env: INSTANCE=default-amazonlinux-2-3000-3-py3
|
||||
# - env: INSTANCE=default-ubuntu-1804-3000-3-py2
|
||||
# - env: INSTANCE=default-ubuntu-1604-3000-3-py2
|
||||
# - env: INSTANCE=default-arch-base-latest-3000-3-py2
|
||||
# - env: INSTANCE=default-debian-10-2019-2-py3
|
||||
# - env: INSTANCE=default-debian-9-2019-2-py3
|
||||
# - env: INSTANCE=default-ubuntu-1804-2019-2-py3
|
||||
- env: INSTANCE=default-centos-8-2019-2-py3
|
||||
- env: INSTANCE=default-fedora-31-2019-2-py3
|
||||
# - env: INSTANCE=default-opensuse-leap-151-2019-2-py3
|
||||
# - env: INSTANCE=default-centos-7-2019-2-py2
|
||||
# - env: INSTANCE=default-ubuntu-1604-2019-2-py3
|
||||
# - env: INSTANCE=default-centos-8-2019-2-py3
|
||||
# - env: INSTANCE=default-centos-7-2019-2-py3
|
||||
# - env: INSTANCE=default-fedora-31-2019-2-py3
|
||||
# - env: INSTANCE=default-opensuse-leap-152-2019-2-py3
|
||||
# - env: INSTANCE=default-amazonlinux-2-2019-2-py3
|
||||
# - env: INSTANCE=default-arch-base-latest-2019-2-py2
|
||||
# - env: INSTANCE=default-fedora-30-2018-3-py3
|
||||
# - env: INSTANCE=default-debian-9-2018-3-py2
|
||||
- env: INSTANCE=default-ubuntu-1604-2018-3-py2
|
||||
# - env: INSTANCE=default-centos-7-2018-3-py2
|
||||
- env: INSTANCE=default-opensuse-leap-151-2018-3-py2
|
||||
# - env: INSTANCE=default-amazonlinux-1-2018-3-py2
|
||||
# - env: INSTANCE=default-arch-base-latest-2018-3-py2
|
||||
# - env: INSTANCE=default-debian-8-2017-7-py2
|
||||
# - env: INSTANCE=default-ubuntu-1604-2017-7-py2
|
||||
- env: INSTANCE=default-centos-6-2017-7-py2
|
||||
# - env: INSTANCE=default-fedora-30-2017-7-py2
|
||||
# - env: INSTANCE=default-opensuse-leap-151-2017-7-py2
|
||||
# - env: INSTANCE=default-amazonlinux-1-2017-7-py2
|
||||
# - env: INSTANCE=default-arch-base-latest-2017-7-py2
|
||||
# - env: INSTANCE=default-centos-6-2019-2-py2
|
||||
# - env: INSTANCE=default-amazonlinux-1-2019-2-py2
|
||||
- env: INSTANCE=default-arch-base-latest-2019-2-py2
|
||||
|
||||
## Define the release stage that runs `semantic-release`
|
||||
- stage: 'release'
|
||||
|
||||
@@ -4,7 +4,7 @@ This list is sorted by the number of commits per contributor in _descending_ ord
|
||||
|
||||
Avatar|Contributor|Contributions
|
||||
:-:|---|:-:
|
||||
<img class='float-left rounded-1' src='https://avatars2.githubusercontent.com/u/10231489?v=4' width='36' height='36' alt='@myii'>|[@myii](https://github.com/myii)|119
|
||||
<img class='float-left rounded-1' src='https://avatars2.githubusercontent.com/u/10231489?v=4' width='36' height='36' alt='@myii'>|[@myii](https://github.com/myii)|123
|
||||
<img class='float-left rounded-1' src='https://avatars1.githubusercontent.com/u/13322818?v=4' width='36' height='36' alt='@noelmcloughlin'>|[@noelmcloughlin](https://github.com/noelmcloughlin)|62
|
||||
<img class='float-left rounded-1' src='https://avatars0.githubusercontent.com/u/1800660?v=4' width='36' height='36' alt='@aboe76'>|[@aboe76](https://github.com/aboe76)|54
|
||||
<img class='float-left rounded-1' src='https://avatars2.githubusercontent.com/u/1396878?v=4' width='36' height='36' alt='@gravyboat'>|[@gravyboat](https://github.com/gravyboat)|41
|
||||
@@ -69,4 +69,4 @@ Avatar|Contributor|Contributions
|
||||
|
||||
---
|
||||
|
||||
Auto-generated by a [forked version](https://github.com/myii/maintainer) of [gaocegege/maintainer](https://github.com/gaocegege/maintainer) on 2020-07-10.
|
||||
Auto-generated by a [forked version](https://github.com/myii/maintainer) of [gaocegege/maintainer](https://github.com/gaocegege/maintainer) on 2020-07-27.
|
||||
|
||||
19
CHANGELOG.md
19
CHANGELOG.md
@@ -1,5 +1,24 @@
|
||||
# Changelog
|
||||
|
||||
## [0.41.2](https://github.com/saltstack-formulas/postgres-formula/compare/v0.41.1...v0.41.2) (2020-07-27)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **macros:** fix `format_kwargs` macro ([5e6511b](https://github.com/saltstack-formulas/postgres-formula/commit/5e6511b783388930010e6c0795b197728fb10b39))
|
||||
|
||||
|
||||
### Continuous Integration
|
||||
|
||||
* **kitchen:** ubuntu-2004-master-py3 added ([7978976](https://github.com/saltstack-formulas/postgres-formula/commit/79789765439bb0727521dc817fe9eaebba000a67))
|
||||
* **kitchen+travis:** use latest pre-salted images [skip ci] ([702323c](https://github.com/saltstack-formulas/postgres-formula/commit/702323c24df1df6b11defd663b55cf38586bd3f3))
|
||||
* **travis:** ubuntu upgrade from 16 to 18 & 20 ([44568a6](https://github.com/saltstack-formulas/postgres-formula/commit/44568a680602fb61f157b74dc05f9af9b153e8e6))
|
||||
|
||||
|
||||
### Styles
|
||||
|
||||
* **libtofs.jinja:** use Black-inspired Jinja formatting [skip ci] ([8735cf8](https://github.com/saltstack-formulas/postgres-formula/commit/8735cf8ad1b9fc1eb816aecf3d363d4fc81fbe66))
|
||||
|
||||
## [0.41.1](https://github.com/saltstack-formulas/postgres-formula/compare/v0.41.0...v0.41.1) (2020-07-10)
|
||||
|
||||
|
||||
|
||||
2
FORMULA
2
FORMULA
@@ -1,7 +1,7 @@
|
||||
name: postgres
|
||||
os: Debian, Ubuntu, Raspbian, RedHat, Fedora, CentOS, Suse, openSUSE, Gentoo, Funtoo, Arch, Manjaro, Alpine, FreeBSD, OpenBSD, Solaris, SmartOS, Windows, MacOS
|
||||
os_family: Debian, RedHat, Suse, Gentoo, Arch, Alpine, FreeBSD, OpenBSD, Solaris, Windows, MacOS
|
||||
version: 0.41.1
|
||||
version: 0.41.2
|
||||
release: 1
|
||||
minimum_version: 2016.11
|
||||
summary: Postgres formula
|
||||
|
||||
@@ -15,7 +15,7 @@ This list is sorted by the number of commits per contributor in *descending* ord
|
||||
- Contributions
|
||||
* - :raw-html-m2r:`<img class='float-left rounded-1' src='https://avatars2.githubusercontent.com/u/10231489?v=4' width='36' height='36' alt='@myii'>`
|
||||
- `@myii <https://github.com/myii>`_
|
||||
- 119
|
||||
- 123
|
||||
* - :raw-html-m2r:`<img class='float-left rounded-1' src='https://avatars1.githubusercontent.com/u/13322818?v=4' width='36' height='36' alt='@noelmcloughlin'>`
|
||||
- `@noelmcloughlin <https://github.com/noelmcloughlin>`_
|
||||
- 62
|
||||
@@ -203,4 +203,4 @@ This list is sorted by the number of commits per contributor in *descending* ord
|
||||
|
||||
----
|
||||
|
||||
Auto-generated by a `forked version <https://github.com/myii/maintainer>`_ of `gaocegege/maintainer <https://github.com/gaocegege/maintainer>`_ on 2020-07-10.
|
||||
Auto-generated by a `forked version <https://github.com/myii/maintainer>`_ of `gaocegege/maintainer <https://github.com/gaocegege/maintainer>`_ on 2020-07-27.
|
||||
|
||||
@@ -2,6 +2,29 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
`0.41.2 <https://github.com/saltstack-formulas/postgres-formula/compare/v0.41.1...v0.41.2>`_ (2020-07-27)
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Bug Fixes
|
||||
^^^^^^^^^
|
||||
|
||||
|
||||
* **macros:** fix ``format_kwargs`` macro (\ `5e6511b <https://github.com/saltstack-formulas/postgres-formula/commit/5e6511b783388930010e6c0795b197728fb10b39>`_\ )
|
||||
|
||||
Continuous Integration
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
||||
* **kitchen:** ubuntu-2004-master-py3 added (\ `7978976 <https://github.com/saltstack-formulas/postgres-formula/commit/79789765439bb0727521dc817fe9eaebba000a67>`_\ )
|
||||
* **kitchen+travis:** use latest pre-salted images [skip ci] (\ `702323c <https://github.com/saltstack-formulas/postgres-formula/commit/702323c24df1df6b11defd663b55cf38586bd3f3>`_\ )
|
||||
* **travis:** ubuntu upgrade from 16 to 18 & 20 (\ `44568a6 <https://github.com/saltstack-formulas/postgres-formula/commit/44568a680602fb61f157b74dc05f9af9b153e8e6>`_\ )
|
||||
|
||||
Styles
|
||||
^^^^^^
|
||||
|
||||
|
||||
* **libtofs.jinja:** use Black-inspired Jinja formatting [skip ci] (\ `8735cf8 <https://github.com/saltstack-formulas/postgres-formula/commit/8735cf8ad1b9fc1eb816aecf3d363d4fc81fbe66>`_\ )
|
||||
|
||||
`0.41.1 <https://github.com/saltstack-formulas/postgres-formula/compare/v0.41.0...v0.41.1>`_ (2020-07-10)
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
137
kitchen.yml
137
kitchen.yml
@@ -15,20 +15,26 @@ platforms:
|
||||
- name: debian-10-master-py3
|
||||
driver:
|
||||
image: saltimages/salt-master-py3:debian-10
|
||||
- name: ubuntu-2004-master-py3
|
||||
driver:
|
||||
image: saltimages/salt-master-py3:ubuntu-20.04
|
||||
- name: ubuntu-1804-master-py3
|
||||
driver:
|
||||
image: saltimages/salt-master-py3:ubuntu-18.04
|
||||
- name: centos-8-master-py3
|
||||
driver:
|
||||
image: saltimages/salt-master-py3:centos-8
|
||||
- name: fedora-32-master-py3
|
||||
driver:
|
||||
image: saltimages/salt-master-py3:fedora-32
|
||||
- name: fedora-31-master-py3
|
||||
driver:
|
||||
image: saltimages/salt-master-py3:fedora-31
|
||||
- name: opensuse-leap-151-master-py3
|
||||
- name: opensuse-leap-152-master-py3
|
||||
driver:
|
||||
image: netmanagers/salt-master-py3:opensuse-leap-15.1
|
||||
image: saltimages/salt-master-py3:opensuse-leap-15.2
|
||||
run_command: /usr/lib/systemd/systemd
|
||||
# Workaround to avoid intermittent failures on `opensuse-leap-15.1`:
|
||||
# Workaround to avoid intermittent failures on `opensuse-leap-15.2`:
|
||||
# => SCP did not finish successfully (255): (Net::SCP::Error)
|
||||
transport:
|
||||
max_ssh_sessions: 1
|
||||
@@ -36,6 +42,47 @@ platforms:
|
||||
driver:
|
||||
image: saltimages/salt-master-py3:amazonlinux-2
|
||||
|
||||
## SALT `3000.3`
|
||||
- name: debian-10-3000-3-py3
|
||||
driver:
|
||||
image: saltimages/salt-3000.3-py3:debian-10
|
||||
- name: debian-9-3000-3-py3
|
||||
driver:
|
||||
image: saltimages/salt-3000.3-py3:debian-9
|
||||
- name: ubuntu-1804-3000-3-py3
|
||||
driver:
|
||||
image: saltimages/salt-3000.3-py3:ubuntu-18.04
|
||||
- name: centos-8-3000-3-py3
|
||||
driver:
|
||||
image: saltimages/salt-3000.3-py3:centos-8
|
||||
- name: centos-7-3000-3-py3
|
||||
driver:
|
||||
image: saltimages/salt-3000.3-py3:centos-7
|
||||
- name: fedora-31-3000-3-py3
|
||||
driver:
|
||||
image: saltimages/salt-3000.3-py3:fedora-31
|
||||
- name: opensuse-leap-152-3000-3-py3
|
||||
driver:
|
||||
image: saltimages/salt-3000.3-py3:opensuse-leap-15.2
|
||||
run_command: /usr/lib/systemd/systemd
|
||||
# Workaround to avoid intermittent failures on `opensuse-leap-15.2`:
|
||||
# => SCP did not finish successfully (255): (Net::SCP::Error)
|
||||
transport:
|
||||
max_ssh_sessions: 1
|
||||
- name: amazonlinux-2-3000-3-py3
|
||||
driver:
|
||||
image: saltimages/salt-3000.3-py3:amazonlinux-2
|
||||
- name: ubuntu-1804-3000-3-py2
|
||||
driver:
|
||||
image: saltimages/salt-3000.3-py2:ubuntu-18.04
|
||||
- name: ubuntu-1604-3000-3-py2
|
||||
driver:
|
||||
image: saltimages/salt-3000.3-py2:ubuntu-16.04
|
||||
- name: arch-base-latest-3000-3-py2
|
||||
driver:
|
||||
image: saltimages/salt-3000.3-py2:arch-base-latest
|
||||
run_command: /usr/lib/systemd/systemd
|
||||
|
||||
## SALT `2019.2`
|
||||
- name: debian-10-2019-2-py3
|
||||
driver:
|
||||
@@ -46,92 +93,42 @@ platforms:
|
||||
- name: ubuntu-1804-2019-2-py3
|
||||
driver:
|
||||
image: saltimages/salt-2019.2-py3:ubuntu-18.04
|
||||
- name: ubuntu-1604-2019-2-py3
|
||||
driver:
|
||||
image: saltimages/salt-2019.2-py3:ubuntu-16.04
|
||||
- name: centos-8-2019-2-py3
|
||||
driver:
|
||||
image: saltimages/salt-2019.2-py3:centos-8
|
||||
- name: centos-7-2019-2-py3
|
||||
driver:
|
||||
image: saltimages/salt-2019.2-py3:centos-7
|
||||
- name: fedora-31-2019-2-py3
|
||||
driver:
|
||||
image: saltimages/salt-2019.2-py3:fedora-31
|
||||
- name: opensuse-leap-151-2019-2-py3
|
||||
- name: opensuse-leap-152-2019-2-py3
|
||||
driver:
|
||||
image: netmanagers/salt-2019.2-py3:opensuse-leap-15.1
|
||||
image: saltimages/salt-2019.2-py3:opensuse-leap-15.2
|
||||
run_command: /usr/lib/systemd/systemd
|
||||
# Workaround to avoid intermittent failures on `opensuse-leap-15.1`:
|
||||
# Workaround to avoid intermittent failures on `opensuse-leap-15.2`:
|
||||
# => SCP did not finish successfully (255): (Net::SCP::Error)
|
||||
transport:
|
||||
max_ssh_sessions: 1
|
||||
- name: centos-7-2019-2-py2
|
||||
driver:
|
||||
image: netmanagers/salt-2019.2-py2:centos-7
|
||||
- name: amazonlinux-2-2019-2-py3
|
||||
driver:
|
||||
image: saltimages/salt-2019.2-py3:amazonlinux-2
|
||||
- name: centos-6-2019-2-py2
|
||||
driver:
|
||||
image: saltimages/salt-2019.2-py2:centos-6
|
||||
run_command: /sbin/init
|
||||
- name: amazonlinux-1-2019-2-py2
|
||||
driver:
|
||||
image: saltimages/salt-2019.2-py2:amazonlinux-1
|
||||
run_command: /sbin/init
|
||||
- name: arch-base-latest-2019-2-py2
|
||||
driver:
|
||||
image: saltimages/salt-2019.2-py2:arch-base-latest
|
||||
run_command: /usr/lib/systemd/systemd
|
||||
|
||||
## SALT `2018.3`
|
||||
- name: fedora-30-2018-3-py3
|
||||
driver:
|
||||
image: netmanagers/salt-2018.3-py3:fedora-30
|
||||
- name: debian-9-2018-3-py2
|
||||
driver:
|
||||
image: netmanagers/salt-2018.3-py2:debian-9
|
||||
- name: ubuntu-1604-2018-3-py2
|
||||
driver:
|
||||
image: netmanagers/salt-2018.3-py2:ubuntu-16.04
|
||||
- name: centos-7-2018-3-py2
|
||||
driver:
|
||||
image: netmanagers/salt-2018.3-py2:centos-7
|
||||
- name: opensuse-leap-151-2018-3-py2
|
||||
driver:
|
||||
image: netmanagers/salt-2018.3-py2:opensuse-leap-15.1
|
||||
run_command: /usr/lib/systemd/systemd
|
||||
# Workaround to avoid intermittent failures on `opensuse-leap-15.1`:
|
||||
# => SCP did not finish successfully (255): (Net::SCP::Error)
|
||||
transport:
|
||||
max_ssh_sessions: 1
|
||||
- name: amazonlinux-1-2018-3-py2
|
||||
driver:
|
||||
image: netmanagers/salt-2018.3-py2:amazonlinux-1
|
||||
run_command: /sbin/init
|
||||
- name: arch-base-latest-2018-3-py2
|
||||
driver:
|
||||
image: netmanagers/salt-2018.3-py2:arch-base-latest
|
||||
run_command: /usr/lib/systemd/systemd
|
||||
|
||||
## SALT `2017.7`
|
||||
- name: debian-8-2017-7-py2
|
||||
driver:
|
||||
image: netmanagers/salt-2017.7-py2:debian-8
|
||||
- name: ubuntu-1604-2017-7-py2
|
||||
driver:
|
||||
image: netmanagers/salt-2017.7-py2:ubuntu-16.04
|
||||
- name: centos-6-2017-7-py2
|
||||
driver:
|
||||
image: netmanagers/salt-2017.7-py2:centos-6
|
||||
run_command: /sbin/init
|
||||
- name: fedora-30-2017-7-py2
|
||||
driver:
|
||||
image: netmanagers/salt-2017.7-py2:fedora-30
|
||||
- name: opensuse-leap-151-2017-7-py2
|
||||
driver:
|
||||
image: netmanagers/salt-2017.7-py2:opensuse-leap-15.1
|
||||
run_command: /usr/lib/systemd/systemd
|
||||
# Workaround to avoid intermittent failures on `opensuse-leap-15.1`:
|
||||
# => SCP did not finish successfully (255): (Net::SCP::Error)
|
||||
transport:
|
||||
max_ssh_sessions: 1
|
||||
- name: amazonlinux-1-2017-7-py2
|
||||
driver:
|
||||
image: netmanagers/salt-2017.7-py2:amazonlinux-1
|
||||
run_command: /sbin/init
|
||||
- name: arch-base-latest-2017-7-py2
|
||||
driver:
|
||||
image: netmanagers/salt-2017.7-py2:arch-base-latest
|
||||
run_command: /usr/lib/systemd/systemd
|
||||
|
||||
provisioner:
|
||||
name: salt_solo
|
||||
log_level: debug
|
||||
|
||||
@@ -1,40 +1,37 @@
|
||||
{%- macro files_switch(source_files,
|
||||
lookup=None,
|
||||
default_files_switch=['id', 'os_family'],
|
||||
indent_width=6,
|
||||
use_subpath=False) %}
|
||||
{#-
|
||||
{%- 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
|
||||
* 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
|
||||
"<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'
|
||||
) }}
|
||||
- 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
|
||||
@@ -46,67 +43,73 @@
|
||||
- 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 %}
|
||||
{%- set url = [
|
||||
'- salt:/',
|
||||
path_prefix_inc_ext.strip('/'),
|
||||
files_dir.strip('/'),
|
||||
fs_dir.strip('/'),
|
||||
src_file.strip('/'),
|
||||
] | select | join('/') %}
|
||||
#}
|
||||
{#- 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 %}
|
||||
{%- endfor %}
|
||||
{%- endfor %}
|
||||
{%- endfor %}
|
||||
{%- endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
{%- filter indent(4) %}
|
||||
{%- for k, v in kwarg|dictsort() %}
|
||||
- {{ k }}: {{ v }}
|
||||
- {{ k }}: {{ v|yaml_dquote if v is string else v }}
|
||||
{%- endfor %}
|
||||
{%- endfilter %}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user