Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

backup: Remove default parameter from jinja map #1839

Merged
merged 1 commit into from
Apr 23, 2024

Conversation

dsavineau
Copy link
Contributor

@dsavineau dsavineau commented Apr 22, 2024

SUMMARY

The default paramater from the jinja map filter has been added in the 2.11.0 release.
However, the downstream ansible operator is still using ansible 2.9 with jinja 2.10.x so using the default parameter leads to the following error:

TASK [Dump ingress tls secret names from awx spec and data into file] ********************************
The error was: jinja2.exceptions.FilterArgumentError: Unexpected keyword argument 'default'
fatal: [localhost]: FAILED! => {
  "msg": "Unexpected failure during module execution.",
  "stdout": ""
}
ISSUE TYPE
  • Bug, Docs Fix or other nominal change
ADDITIONAL INFORMATION

Rather than using the default parameter with the map filter then add the selectattr filter to get only the items with tls_secret defined and then get the tls_secret attribute with the map filter.

This also gets rid of the when statement since we always get an empty list when no tls_secret are present in ingress_hosts so the loop statement will be skipped on the empty list.

Finally this changes the default value from the ingress_hosts field because it's a list rather than a string.

https://jinja.palletsprojects.com/en/latest/templates/#jinja-filters.map

The default paramater from the jinja map filter has been added in the
2.11.0 release.
However, the downstream ansible operator is still using ansible 2.9
with jinja 2.10.x so using the default parameter leads to the
following error:

TASK [Dump ingress tls secret names from awx spec and data into file]
********************************
The error was: jinja2.exceptions.FilterArgumentError: Unexpected
keyword argument 'default'
fatal: [localhost]: FAILED! => {
  "msg": "Unexpected failure during module execution.",
  "stdout": ""
}

Rather than using the default parameter with the map filter then add the
selectattr filter to get only the items with tls_secret defined and then
get the tls_secret attribute with the map filter.

This also gets rid of the when statement since we always get an empty
list when no tls_secret are present in ingress_hosts so the loop statement
will be skipped on the empty list.

Finally this changes the default value from the ingress_hosts field because
it's a list rather than a string.

https://jinja.palletsprojects.com/en/latest/templates/#jinja-filters.map

Signed-off-by: Dimitri Savineau <[email protected]>
@dsavineau dsavineau merged commit 3fa6085 into ansible:devel Apr 23, 2024
7 of 8 checks passed
@dsavineau dsavineau deleted the backup_fix_map_old_jinja2 branch April 23, 2024 14:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants