Help With Jinja Statement For Appending To List

12 views
Skip to first unread message

Clint Denham

unread,
Mar 30, 2021, 12:52:11 PM3/30/21
to ansible...@googlegroups.com
I'm having a problem with Jinja Statements, and having it append to a list.

I have an existing list of VLANs that I'm trying to sort into individual lists but the statement I'm using isn't appending, but rather creating separate lists. Can you point out what I'm doing wrong please so that I end up with the 'Desired Result' below?

List of VLANs
=============================
vlans:
  - name: COMMON_HA_1.9_v4
  - name: EDN_FW2SVR_1.1_DUAL
  - name: EDN_LB2SVR_1.4_DUAL
  - name: RAN_FW2SVR.3_v6
  - name: RAN_LB2SVR_1.7_v6
  - name: RAN_LB2SVR_1.8_v6
  - name: WSN_FW2SVR_1.2_DUAL
  - name: WSN_LB2SVR_1.5_DUAL
  - name: WSN_LB2SVR_1.6_v4


Jinja Statement
 ============================= 
{% for value in vlans %}
{% if value['name'].startswith('EDN') %}
- ednvlan:
  - {{ value['name'] }}
{% elif value['name'].startswith('WSN') %}
- wsnvlan:
  - {{ value['name'] }}
{% elif value['name'].startswith('RAN') %}
- ranvlan:
  - {{ value['name'] }}
{% endif %}
{% endfor %}


Result (not desired)
============================= 
- ednvlan:
  - EDN_FW2LB_1.1_DUAL
- ednvlan:
  - EDN_LB2SVR_1.4_DUAL
- ranvlan:
  - RAN_FW2LB_1.3_v6
- ranvlan:
  - RAN_LB2SVR_1.7_v6
- ranvlan:
  - RAN_LB2SVR_1.8_v6
- wsnvlan:
  - WSN_FW2LB_1.2_DUAL
- wsnvlan:
  - WSN_LB2SVR_1.5_DUAL
- wsnvlan:
  - WSN_LB2SVR_1.6_v4


Desired Result
=============================
- ednvlan:
  - EDN_FW2LB_1.1_DUAL
  - EDN_LB2SVR_1.4_DUAL
- ranvlan:
  - RAN_FW2LB_1.3_v6
  - RAN_LB2SVR_1.7_v6
  - RAN_LB2SVR_1.8_v6
- wsnvlan:
  - WSN_FW2LB_1.2_DUAL
  - WSN_LB2SVR_1.5_DUAL
  - WSN_LB2SVR_1.6_v4 
Reply all
Reply to author
Forward
0 new messages