Hi there,
while working with fortinet.fortios I’ve engineered that the modules need some help to track the changed and failed
status. So I’ve added the following parameters to each module called:
`
- name: “{{ device }}{{ vdom }} configure static route”
fortios_router_static:
vdom: “{{ vdom }}”
state: “present”
router_static:
device: “{{ item.device }}”
dst: “{{ item.dst }}”
gateway: “{{ item.gateway }}”
seq_num: “{{ item.name }}”
status: “enable”
with_items: “{{ router_static }}”
register: r
changed_when: “‘meta’ in r and r[‘meta’][‘status’] == ‘success’ and r[‘meta’][‘revision_changed’] == true”
failed_when: “‘meta’ not in r or r[‘meta’][‘status’] == ‘error’”
`
As it is kinda hard to read and maintain, I wonder if there is a simpler way without changing the module. Something like this comes to mind:
`
`
-
set_fact
my_changed_when: "'meta' in r and r['meta']['status'] == 'success' and r['meta']['revision_changed'] == true"
my_failed_when: "'meta' not in r or r['meta']['status'] == 'error'"
-
name: “{{ device }}{{ vdom }} configure static route”
fortios_router_static:
vdom: “{{ vdom }}”
state: “present”
router_static:
device: “{{ item.device }}”
dst: “{{ item.dst }}”
gateway: “{{ item.gateway }}”
seq_num: “{{ item.name }}”
status: “enable”
with_items: “{{ router_static }}”
register: r
changed_when: “{{my_changed_when }}"
failed_when: ``”{{my_failed_when````````}}"
The problem is, that this is not getting evaluated. Further, an error is thrown that jinja template tags are not allowed in conditionals anymore. Does anyone have another
idea how to solve this?
Greetings,
Michael