Remove custom filter in favour of native jinja2

This commit is contained in:
Wojciech Kozlowski 2022-12-14 20:51:20 +01:00
parent ec1009eb02
commit d547729275
6 changed files with 9 additions and 85 deletions

View File

@ -1,2 +0,0 @@
[flake8]
max-line-length = 100

2
.gitignore vendored
View File

@ -1,4 +1,2 @@
**/__pycache__/**
fact_cache/**
.coverage
vault.yml

View File

@ -1,6 +0,0 @@
ansible
ansible-lint
pytest
pytest-cov
flake8
yamllint

View File

@ -0,0 +1,9 @@
services_all_services: "{{
services_all_hosts | map('extract', hostvars, 'services_host_services') | map('dict2items') |
flatten | items2dict }}"
services_rproxy_add_hosts: "\
{% set add_host_list = [] %}\
{% for service in ( services_all_services | dict2items ) %}\
{{ add_host_list.append('--add-host-' ~ service.key ~ ':' ~ service.value.address) }}\
{% endfor %}\
{{ add_host_list | join(' ') }}"

View File

@ -1,32 +0,0 @@
import jinja2.exceptions
import ansible.errors
import ansible.module_utils
def __format_dict(dict_, pattern, *args):
values = []
for arg in args:
keys = arg.split(".")
value = dict_
for i, key in enumerate(keys):
try:
value = value[key]
except KeyError:
raise KeyError(f"{key} not in {'.'.join(['item'] + keys[:i])}")
values.append(value)
return pattern.format(*values)
def format_dict(dict_, pattern, *args): # pragma: no cover
try:
return __format_dict(dict_, pattern, *args)
except jinja2.exceptions.UndefinedError as e:
raise ansible.errors.AnsibleUndefinedVariable(
ansible.module_utils._text.to_native(e)) from e
except Exception as e:
raise ansible.errors.AnsibleFilterError(ansible.module_utils._text.to_native(e)) from e
class FilterModule: # pragma: no cover
def filters(self):
return {"format_dict": format_dict}

View File

@ -1,43 +0,0 @@
import ansible.errors
import pytest
from plugins.filter.format import format_dict
@pytest.fixture()
def item():
return {
"key": "key_value",
"value": {
"key_2_1": "value_2_1",
"key_2_2": {
"key_2_2_1": "value_2_2_1",
"key_2_2_2": "value_2_2_2",
},
"key_2_3": {
"key_2_3_1": "value_2_3_1",
},
},
}
def test_format_dict(item):
string = format_dict(
item,
"start-{}-{}-{}-end",
"key",
"value.key_2_1",
"value.key_2_2.key_2_2_2",
)
assert string == "start-key_value-value_2_1-value_2_2_2-end"
def test_format_dict_key_error(item):
with pytest.raises(ansible.errors.AnsibleFilterError):
format_dict(
item,
"start-{}-{}-{}-end",
"key",
"value.key_2_1",
"value.key_2_2.key_2_3_1",
)