ttp icon indicating copy to clipboard operation
ttp copied to clipboard

TTP KeyError while running macro

Open dmulyalin opened this issue 3 years ago • 0 comments

trying to parse some ios-xr 5.1.3 router interfaces and am running into a "KeyError:" issue whenever an interface has "secondary" IP's assigned to it.

I think it may have something to do with the 2nd group tag, although I tried grouping another variable in the template and it worked.

template = """

<input load="text">
interface Bundle-Ether801.101
 description TTP MACRO TEST INTERFACE
 mtu 9104
 ipv4 address 192.168.1.1 255.255.255.0
 ipv4 address 10.50.45.1 255.255.255.128 secondary
 load-interval 30
 encapsulation dot1q 101
!
</input>

<macro>
def is_trunk(data):
    if "dot1q" in data['interface']:
        data['trunk'] = True
    else:
        data['trunk'] = False
    return data

</macro>

<group name="interfaces.{{ interface }}" macro="is_trunk">
interface {{ interface }}
 description {{ description |ORPHRASE }}
 mtu {{ mtu }}
 vrf {{ vrf |default(None) }}
 service-policy input {{ sp_ingress |default(None) }}
 service-policy output {{ sp_egress |default(None) }}
 ipv4 address {{ ipv4_addr |default(None) }} {{ ipv4_mask |default(None) }}
 <group name="secondary">
 ipv4 address {{ ipv4_addr |default(None) }} {{ ipv4_mask |default(None) }} secondary
 </group>
 ipv6 address {{ ipv6_addr |default(None) }}/{{ ipv6_mask |default(None) }}
 encapsulation dot1q {{ dot1q }}
 ipv4 access-group {{ ingress_acl_v4 |_exact_ |default(None) }} ingress
 ipv4 access-group {{ egress_acl_v4 |_exact_ |default(None) }} egress
 bundle id {{ lag_id }} mode {{ mode }}
 ipv6 access-group {{ ingress_acl_v6 |_exact_ |default(None) }} ingress
 ipv6 access-group {{ egress_acl_v6 |_exact_ |default(None) }} egress
 shutdown {{ disabled |set(True) }}
! {{ _end_ }}
</group>

"""
parser = ttp(
    template=template,
    log_level ="DEBUG",
    log_file="macro_test_1.log",
)
parser.parse()
res = parser.result()

print(res)

issue seen on ttp 0.9.1 using python version 3.6.9, Python 3.9.13 + ttp 0.7.2 works fine

dmulyalin avatar Oct 06 '22 08:10 dmulyalin