huawei.vrp.cfg.ip
Reference path:
ttp://misc/Netmiko/huawei.vrp.cfg.ip.txt
Template to parse "display current-configuration interface" output. This template produces one dictionary item per IP address configured on device's interfaces including secondary and VRRP IP addresses.
Output is a list of dictionaries.
Sample data:
Huawei-box-1-dis cur interface
interface Eth-Trunk1.100
vlan-type dot1q 100
mtu 9600
description Link description here
ip address 10.1.130.2 255.255.255.252
ip binding vpn-instance VRF1
vrrp6 vrid 1 virtual-ip 2001:db8::100
#
Sample results, structure="flat_list":
[
{
"description": "description",
"hostname": "Huawei-box-1",
"interface": "Eth-Trunk1.100",
"ip": "10.1.130.2",
"mask": "255.255.255.252",
"vrf": "VRF1"
}
]
Template supports Netmiko run_ttp method:
import pprint
from netmiko import ConnectHandler
net_connect = ConnectHandler(
device_type="huawei",
host="1.2.3.4",
username="admin",
password="admin",
)
res = net_connect.run_ttp("ttp://misc/netmiko/huawei.vrp.cfg.ip.txt", res_kwargs={"structure": "flat_list"})
pprint.pprint(res)
# prints something along the lines of:
#
Template Content
<doc>
Template to parse "display current-configuration interface" output.
This template produces one dictionary item per IP address configured
on device's interfaces including secondary and VRRP IP addresses.
Output is a list of dictionaries.
Sample data:
'''
Huawei-box-1-dis cur interface
interface Eth-Trunk1.100
vlan-type dot1q 100
mtu 9600
description Link description here
ip address 10.1.130.2 255.255.255.252
ip binding vpn-instance VRF1
vrrp6 vrid 1 virtual-ip 2001:db8::100
#
'''
Sample results, structure="flat_list":
'''
[
{
"description": "description",
"hostname": "Huawei-box-1",
"interface": "Eth-Trunk1.100",
"ip": "10.1.130.2",
"mask": "255.255.255.252",
"vrf": "VRF1"
}
]
'''
Template supports Netmiko run_ttp method:
'''
import pprint
from netmiko import ConnectHandler
net_connect = ConnectHandler(
device_type="huawei",
host="1.2.3.4",
username="admin",
password="admin",
)
res = net_connect.run_ttp("ttp://misc/netmiko/huawei.vrp.cfg.ip.txt", res_kwargs={"structure": "flat_list"})
pprint.pprint(res)
# prints something along the lines of:
#
'''
</doc>
<input>
commands = [
"display current-configuration interface"
]
# need to keep prompt for "gethostname" to work
kwargs = {
"strip_prompt": False,
"strip_command": False
}
</input>
<vars>
hostname="gethostname"
record_all = [
"record(interface)",
"record(description)",
"record(vrf)",
"void()"
]
set_all = [
"set(interface)",
"set(description)",
"set(vrf)",
"set(hostname)"
]
</vars>
<group chain="record_all">
interface {{ interface | resuball("short_interface_names") }}
description {{ description | re(".+") }}
ip binding vpn-instance {{ vrf | default("default") }}
<group name="/" chain="set_all" method="table">
ip address {{ ipv4 | IP }} {{ mask }}
ip address {{ ipv4 | IP | let("secondary", True) }} {{ mask }} sub
ipv6 address {{ ipv6 | IPV6 | _exact_ }}/{{ mask }}
vrrp vrid 1 virtual-ip {{ ipv4 | IP | let("vip", True) | let("vip_type", "VRRP") }}
vrrp6 vrid 1 virtual-ip {{ ipv6 | IPV6 | let("vip", True) | let("vip_type", "VRRP") | _exact_ }}
</group>
# {{ _end_ }}
</group>