PR progress checklist (to be filled in by reviewers)
[ ] Changes to documentation are appropriate (or tick if not required)
[ ] Changes to tests are appropriate (or tick if not required)
[ ] Reviews completed
What type of PR is this?
Primary type
[ ] [build] Changes related to the build system
[ ] [chore] Changes to the build process or auxiliary tools and libraries such as documentation generation
[ ] [ci] Changes to the continuous integration configuration
[ ] [feat] A new feature
[x] [fix] A bug fix
[ ] [perf] A code change that improves performance
[ ] [refactor] A code change that neither fixes a bug nor adds a feature
[ ] [revert] A change used to revert a previous commit
[ ] [style] Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc.)
Secondary type
[ ] [docs] Documentation changes
[ ] [test] Adding missing or correcting existing tests
Does this PR introduce a BREAKING CHANGE?
No.
Related issues and/or pull requests
Describe the changes you're proposing
In v3002.5 (and probably other patched versions), the fix for CVE-2021-25283 enables Jinja2 safe mode, which breaks use of the 'dict' in x.__class__.__name__ workaround
Workaround no longer needed as CentOS 6 is EOL
Pillar / config required to test the proposed changes
Unable to manage file: Jinja syntax error: access to attribute '__class__' of 'list' object is unsafe.; line 1206
---
[...]
{%- for pillar in cfg_master['ext_pillar'] -%}
{%- for key in pillar -%}
{%- if pillar[key] is string %}
- {{ key }}: {{ pillar[key] }}
{#- Workaround for missing `is mapping` on CentOS 6, see #193: #}
{%- elif pillar[key] is iterable and 'dict' not in pillar[key].__class__.__name__ %} <======================
- {{ key }}:
{%- for parameter in pillar[key] %}
{%- if parameter is iterable and parameter is not string %}
{%- for param, children in parameter.items() %}
- {{ param }}:
[...]
---
Documentation checklist
[ ] Updated the README (e.g. Available states).
[ ] Updated pillar.example.
Testing checklist
[x] Included in Kitchen (i.e. under state_top).
[x] Covered by new/existing tests (e.g. InSpec, Serverspec, etc.).
PR progress checklist (to be filled in by reviewers)
What type of PR is this?
Primary type
[build]
Changes related to the build system[chore]
Changes to the build process or auxiliary tools and libraries such as documentation generation[ci]
Changes to the continuous integration configuration[feat]
A new feature[fix]
A bug fix[perf]
A code change that improves performance[refactor]
A code change that neither fixes a bug nor adds a feature[revert]
A change used to revert a previous commit[style]
Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc.)Secondary type
[docs]
Documentation changes[test]
Adding missing or correcting existing testsDoes this PR introduce a
BREAKING CHANGE
?No.
Related issues and/or pull requests
Describe the changes you're proposing
v3002.5
(and probably other patched versions), the fix for CVE-2021-25283 enables Jinja2 safe mode, which breaks use of the'dict' in x.__class__.__name__
workaroundPillar / config required to test the proposed changes
Debug log showing how the proposed changes work
Documentation checklist
README
(e.g.Available states
).pillar.example
.Testing checklist
state_top
).Additional context