Skip to content

backup: Remove default parameter from jinja map#1839

Merged
dsavineau merged 1 commit intoansible:develfrom
dsavineau:backup_fix_map_old_jinja2
Apr 23, 2024
Merged

backup: Remove default parameter from jinja map#1839
dsavineau merged 1 commit intoansible:develfrom
dsavineau:backup_fix_map_old_jinja2

Conversation

@dsavineau
Copy link
Copy Markdown
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 <dsavinea@redhat.com>
@dsavineau dsavineau merged commit 3fa6085 into ansible:devel Apr 23, 2024
@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