---
- name: "π List Stalwart tracers"
include_tasks: jmap_call.yml
vars:
stalwart_jmap_body: >-
{{ {'using': ['urn:ietf:params:jmap:core', 'urn:stalwart:jmap'],
'methodCalls': [['x:Tracer/get', {'ids': none}, 'c0']]} | to_json }}
- name: "π Resolve the file tracer and the ban tracer"
ansible.builtin.set_fact:
stalwart_log_tracers: >-
{{ stalwart_jmap.methodResponses[0][1].list
| selectattr('@type', 'equalto', 'Log')
| list }}
stalwart_ban_tracers: >-
{{ stalwart_jmap.methodResponses[0][1].list
| selectattr('@type', 'equalto', 'Stdout')
| selectattr('eventsPolicy', 'equalto', 'include')
| selectattr('events', 'superset', STALWART_BAN_TRACER.events | list)
| list }}
- name: "π§ Point the file tracer at a directory that exists"
include_tasks: jmap_call.yml
vars:
stalwart_jmap_body: >-
{{ {'using': ['urn:ietf:params:jmap:core', 'urn:stalwart:jmap'],
'methodCalls': [['x:Tracer/set',
{'update': {stalwart_log_tracers[0].id: {'path': STALWART_LOG_DIR}}},
'c0']]} | to_json }}
when: stalwart_log_tracers | length > 0
- name: "π£ Print bans and failed logins on the container output"
include_tasks: jmap_call.yml
vars:
stalwart_jmap_body: >-
{{ {'using': ['urn:ietf:params:jmap:core', 'urn:stalwart:jmap'],
'methodCalls': [['x:Tracer/set', {'create': {'t': STALWART_BAN_TRACER}}, 'c0']]} | to_json }}
when: stalwart_ban_tracers | length == 0