Can't Reference Array Variables

14 views
Skip to first unread message

jordantkj

unread,
Feb 1, 2016, 12:34:16 PM2/1/16
to Ansible Project

Hi,
I am trying to reference elements in the "from" array from using the following Jinja2 structure. What I want to do is create a separate line for each of the "from" terms.

firewall:
  filters:
    - name: protect-re
      family: inet
      terms:
        - name: accept-ospf
          from:
            - source-prefix-list router-ipv4
            - destination-prefix-list router-ipv4
            - destination-prefix-list ospf
          then:
            - count accept-ospf
            - accept
          apply_flags: omit
        - name: accept-vrrp
          from:
            - source-prefix-list router-ipv4
            - destination-prefix-list vrrp
            - protocol vrrp
            - protocol ah
          then:
            - count accept-vrrp
            - accept
          apply_flags: omit



This is the Jinja2 code that I'm using to get these variables. It works for printing each individual "name" and "apply-flags" var, but I can't seem to get the format correct to reference the "from" array elements.

{# FIREWALL FILTERS #}
{% for myfilter in firewall.filters %}
{% for myterm in myfilter.terms %}
{% set prefx = 'set firewall family ' + myfilter.family + ' filter ' + myfilter.name + ' term ' + myterm.name %}
{% for myfrom in myterm.from %}
{{ prefx }} from {{ myfrom }}
{% endfor %}
{% endfor %}
{% endfor %}


I get the following error when I try to create the playbook...

TASK: [common_firewall | Building common_firewall configuration] **************
fatal
: [mdf3A.site_LNG] => {'msg': "AnsibleUndefinedVariable: One or more undefined variables: 'dict object' has no attribute 'from'", 'failed': True}
fatal
: [mdf3A.site_LNG] => {'msg': "AnsibleUndefinedVariable: One or more undefined variables: 'dict object' has no attribute 'from'", 'failed': True}

FATAL
: all hosts have already failed -- aborting

I'm sure there's something wrong with my Jinja2 code, but can't figure out what it is.

Thanks,
-Tyler

Reply all
Reply to author
Forward
0 new messages