Library Mappings
These dictionaries provide mappings in expected vendor names between Netmiko, NAPALM, pyntc, ntc-templates, pyats, and scrapli. For each non-reversed mapper, the keys of the dictionary represent the driver used for that library while the values represent the "normalized" driver based on netmiko.
These dictionaries allow you to keep your Source of Truth platform data consistent and still easily switch between automation libraries. For example, you may be storing your device platform data in Nautobot. In a Nautobot platform, you can store the NAPALM driver needed for that platform. What if you wanted to write a python script to leverage the backup capabilities of pyntc? Here's an example of how you could use the following dictionaries to perform mappings from your stored Nautobot NAPALM driver to the pyntc driver needed for your script.
import pynautobot
from netutils.lib_mapper import NAPALM_LIB_MAPPER , PYNTC_LIB_MAPPER_REVERSE
from pyntc import ntc_device as NTC
# Get device from Nautobot
nautobot = pynautobot . api ( url = "http://mynautobotinstance.com" , token = "mytoken" )
# Get Napalm driver and save for later use.
device = nautobot . dcim . devices . get ( name = "mydevice" )
sot_driver = device . platform . napalm_driver
# Connect to device via Napalm
driver = napalm . get_network_driver ( "ios" )
device = driver (
hostname = "device.name" ,
username = "demo" ,
password = "secret"
)
# Do Napalm tasks
pyntc_driver = PYNTC_LIB_MAPPER_REVERSE . get ( NAPALM_LIB_MAPPER . get ( sot_driver ))
net_con = NTC ( host = device . name , username = "demo" , password = "secret" , device_type = pyntc_driver )
# Do pyntc tasks
Another use case could be using an example like the above in an Ansible filter. That would allow you to write a filter utilizing whichever automation library you needed without having to store the driver for each one in your Source of Truth.
Ansible Mapper
NORMALIZED
ANSIBLE
arista.eos.eos
→
arista_eos
arubanetworks.aoscx
→
aruba_aoscx
ciena.saos6.saos6
→
ciena_saos
cisco.asa.asa
→
cisco_asa
cisco.ios.ios
→
cisco_ios
cisco.iosxr.iosxr
→
cisco_xr
cisco.nxos.nxos
→
cisco_nxos
community.network.ce
→
huawei
community.network.cnos
→
lenovo_cnos
community.network.enos
→
lenovo_enos
community.network.eric_eccli
→
ericsson_ipos
community.network.exos
→
extreme_exos
community.network.icx
→
ruckus_icx
community.network.ironware
→
extreme_netiron
community.network.netvisor
→
pluribus
community.network.nos
→
extreme_nos
community.network.routeros
→
mikrotik_routeros
community.network.slxos
→
extreme_slx
community.network.sros
→
nokia_sros
community.network.voss
→
extreme_vsp
dellemc.os10.0s10
→
dell_os10
dellemc.os6.os6
→
dell_os6
dellemc.os9.os9
→
dell_os9
junipernetworks.junos.junos
→
juniper_junos
vyos.vyos.vyos
→
vyos
Reverse Ansible Mapper
ANSIBLE
NORMALIZED
arista_eos
→
arista.eos.eos
aruba_aoscx
→
arubanetworks.aoscx
ciena_saos
→
ciena.saos6.saos6
cisco_asa
→
cisco.asa.asa
cisco_ios
→
cisco.ios.ios
cisco_nxos
→
cisco.nxos.nxos
cisco_xr
→
cisco.iosxr.iosxr
dell_os10
→
dellemc.os10.0s10
dell_os6
→
dellemc.os6.os6
dell_os9
→
dellemc.os9.os9
ericsson_ipos
→
community.network.eric_eccli
extreme_exos
→
community.network.exos
extreme_netiron
→
community.network.ironware
extreme_nos
→
community.network.nos
extreme_slx
→
community.network.slxos
extreme_vsp
→
community.network.voss
huawei
→
community.network.ce
juniper_junos
→
junipernetworks.junos.junos
lenovo_cnos
→
community.network.cnos
lenovo_enos
→
community.network.enos
mikrotik_routeros
→
community.network.routeros
nokia_sros
→
community.network.sros
pluribus
→
community.network.netvisor
ruckus_icx
→
community.network.icx
vyos
→
vyos.vyos.vyos
Napalm Mapper
NORMALIZED
NAPALM
aoscx
→
aruba_aoscx
asa
→
cisco_asa
cisco_wlc_ssh
→
cisco_wlc
eos
→
arista_eos
fortios
→
fortinet
huawei
→
huawei_vrp
ios
→
cisco_ios
iosxr
→
cisco_xr
junos
→
juniper_junos
nxos
→
cisco_nxos
nxos_ssh
→
cisco_nxos
panos
→
paloalto_panos
sros
→
nokia_sros
vyos
→
brocade_vyos
Reverse Napalm Mapper
NAPALM
NORMALIZED
arista_eos
→
eos
aruba_aoscx
→
aoscx
brocade_vyos
→
vyos
cisco_asa
→
asa
cisco_ios
→
ios
cisco_nxos
→
nxos
cisco_wlc
→
cisco_wlc_ssh
cisco_xr
→
iosxr
fortinet
→
fortios
huawei_vrp
→
huawei
juniper_junos
→
junos
nokia_sros
→
sros
paloalto_panos
→
panos
NTC Templates Mapper
NORMALIZED
NTCTEMPLATES
a10
→
a10
accedian
→
accedian
adtran_os
→
adtran_os
alcatel_aos
→
alcatel_aos
alcatel_sros
→
alcatel_sros
allied_telesis_awplus
→
allied_telesis_awplus
apresia_aeos
→
apresia_aeos
arista_eos
→
arista_eos
aruba_aoscx
→
aruba_aoscx
aruba_os
→
aruba_os
aruba_osswitch
→
aruba_osswitch
aruba_procurve
→
aruba_procurve
avaya_ers
→
avaya_ers
avaya_vsp
→
avaya_vsp
broadcom_icos
→
broadcom_icos
brocade_fastiron
→
brocade_fastiron
brocade_fos
→
brocade_fos
brocade_netiron
→
brocade_netiron
brocade_nos
→
brocade_nos
brocade_vdx
→
brocade_vdx
brocade_vyos
→
brocade_vyos
calix_b6
→
calix_b6
centec_os
→
centec_os
checkpoint_gaia
→
checkpoint_gaia
ciena_saos
→
ciena_saos
cisco_asa
→
cisco_asa
cisco_ftd
→
cisco_ftd
cisco_ios
→
cisco_ios
cisco_nxos
→
cisco_nxos
cisco_s300
→
cisco_s300
cisco_tp
→
cisco_tp
cisco_wlc
→
cisco_wlc
cisco_xe
→
cisco_xe
cisco_xr
→
cisco_xr
cloudgenix_ion
→
cloudgenix_ion
coriant
→
coriant
dell_dnos9
→
dell_dnos9
dell_force10
→
dell_force10
dell_isilon
→
dell_isilon
dell_os10
→
dell_os10
dell_os6
→
dell_os6
dell_os9
→
dell_os9
dell_powerconnect
→
dell_powerconnect
dlink_ds
→
dlink_ds
eltex
→
eltex
eltex_esr
→
eltex_esr
endace
→
endace
enterasys
→
enterasys
ericsson_ipos
→
ericsson_ipos
extreme
→
extreme
extreme_ers
→
extreme_ers
extreme_exos
→
extreme_exos
extreme_netiron
→
extreme_netiron
extreme_nos
→
extreme_nos
extreme_slx
→
extreme_slx
extreme_vdx
→
extreme_vdx
extreme_vsp
→
extreme_vsp
extreme_wing
→
extreme_wing
f5_linux
→
f5_linux
f5_ltm
→
f5_ltm
f5_tmsh
→
f5_tmsh
flexvnf
→
flexvnf
fortinet
→
fortinet
generic
→
generic
generic_termserver
→
generic_termserver
hp_comware
→
hp_comware
hp_procurve
→
hp_procurve
huawei
→
huawei
huawei_olt
→
huawei_olt
huawei_smartax
→
huawei_smartax
huawei_vrp
→
huawei_vrp
huawei_vrpv8
→
huawei_vrpv8
ipinfusion_ocnos
→
ipinfusion_ocnos
juniper
→
juniper
juniper_junos
→
juniper_junos
juniper_screenos
→
juniper_screenos
keymile
→
keymile
keymile_nos
→
keymile_nos
linux
→
linux
mellanox
→
mellanox
mellanox_mlnxos
→
mellanox_mlnxos
mikrotik_routeros
→
mikrotik_routeros
mikrotik_switchos
→
mikrotik_switchos
mrv_lx
→
mrv_lx
mrv_optiswitch
→
mrv_optiswitch
netapp_cdot
→
netapp_cdot
netgear_prosafe
→
netgear_prosafe
netscaler
→
netscaler
nokia_sros
→
nokia_sros
oneaccess_oneos
→
oneaccess_oneos
ovs_linux
→
ovs_linux
paloalto_panos
→
paloalto_panos
pluribus
→
pluribus
quanta_mesh
→
quanta_mesh
rad_etx
→
rad_etx
raisecom_roap
→
raisecom_roap
ruckus_fastiron
→
ruckus_fastiron
ruijie_os
→
ruijie_os
sixwind_os
→
sixwind_os
sophos_sfos
→
sophos_sfos
tplink_jetstream
→
tplink_jetstream
ubiquiti_edge
→
ubiquiti_edge
ubiquiti_edgerouter
→
ubiquiti_edgerouter
ubiquiti_edgeswitch
→
ubiquiti_edgeswitch
ubiquiti_unifiswitch
→
ubiquiti_unifiswitch
vmware_nsxv
→
vmware_nsxv
vyatta_vyos
→
vyatta_vyos
vyos
→
vyos
watchguard_firebox
→
watchguard_firebox
watchguard_fireware
→
watchguard_fireware
yamaha
→
yamaha
zte_zxros
→
zte_zxros
Reverse NTC Templates Mapper
NTCTEMPLATES
NORMALIZED
a10
→
a10
accedian
→
accedian
adtran_os
→
adtran_os
alcatel_aos
→
alcatel_aos
alcatel_sros
→
alcatel_sros
allied_telesis_awplus
→
allied_telesis_awplus
apresia_aeos
→
apresia_aeos
arista_eos
→
arista_eos
aruba_aoscx
→
aruba_aoscx
aruba_os
→
aruba_os
aruba_osswitch
→
aruba_osswitch
aruba_procurve
→
aruba_procurve
avaya_ers
→
avaya_ers
avaya_vsp
→
avaya_vsp
broadcom_icos
→
broadcom_icos
brocade_fastiron
→
brocade_fastiron
brocade_fos
→
brocade_fos
brocade_netiron
→
brocade_netiron
brocade_nos
→
brocade_nos
brocade_vdx
→
brocade_vdx
brocade_vyos
→
brocade_vyos
calix_b6
→
calix_b6
centec_os
→
centec_os
checkpoint_gaia
→
checkpoint_gaia
ciena_saos
→
ciena_saos
cisco_asa
→
cisco_asa
cisco_ftd
→
cisco_ftd
cisco_ios
→
cisco_ios
cisco_nxos
→
cisco_nxos
cisco_s300
→
cisco_s300
cisco_tp
→
cisco_tp
cisco_wlc
→
cisco_wlc
cisco_xe
→
cisco_xe
cisco_xr
→
cisco_xr
cloudgenix_ion
→
cloudgenix_ion
coriant
→
coriant
dell_dnos9
→
dell_dnos9
dell_force10
→
dell_force10
dell_isilon
→
dell_isilon
dell_os10
→
dell_os10
dell_os6
→
dell_os6
dell_os9
→
dell_os9
dell_powerconnect
→
dell_powerconnect
dlink_ds
→
dlink_ds
eltex
→
eltex
eltex_esr
→
eltex_esr
endace
→
endace
enterasys
→
enterasys
ericsson_ipos
→
ericsson_ipos
extreme
→
extreme
extreme_ers
→
extreme_ers
extreme_exos
→
extreme_exos
extreme_netiron
→
extreme_netiron
extreme_nos
→
extreme_nos
extreme_slx
→
extreme_slx
extreme_vdx
→
extreme_vdx
extreme_vsp
→
extreme_vsp
extreme_wing
→
extreme_wing
f5_linux
→
f5_linux
f5_ltm
→
f5_ltm
f5_tmsh
→
f5_tmsh
flexvnf
→
flexvnf
fortinet
→
fortinet
generic
→
generic
generic_termserver
→
generic_termserver
hp_comware
→
hp_comware
hp_procurve
→
hp_procurve
huawei
→
huawei
huawei_olt
→
huawei_olt
huawei_smartax
→
huawei_smartax
huawei_vrp
→
huawei_vrp
huawei_vrpv8
→
huawei_vrpv8
ipinfusion_ocnos
→
ipinfusion_ocnos
juniper
→
juniper
juniper_junos
→
juniper_junos
juniper_screenos
→
juniper_screenos
keymile
→
keymile
keymile_nos
→
keymile_nos
linux
→
linux
mellanox
→
mellanox
mellanox_mlnxos
→
mellanox_mlnxos
mikrotik_routeros
→
mikrotik_routeros
mikrotik_switchos
→
mikrotik_switchos
mrv_lx
→
mrv_lx
mrv_optiswitch
→
mrv_optiswitch
netapp_cdot
→
netapp_cdot
netgear_prosafe
→
netgear_prosafe
netscaler
→
netscaler
nokia_sros
→
nokia_sros
oneaccess_oneos
→
oneaccess_oneos
ovs_linux
→
ovs_linux
paloalto_panos
→
paloalto_panos
pluribus
→
pluribus
quanta_mesh
→
quanta_mesh
rad_etx
→
rad_etx
raisecom_roap
→
raisecom_roap
ruckus_fastiron
→
ruckus_fastiron
ruijie_os
→
ruijie_os
sixwind_os
→
sixwind_os
sophos_sfos
→
sophos_sfos
tplink_jetstream
→
tplink_jetstream
ubiquiti_edge
→
ubiquiti_edge
ubiquiti_edgerouter
→
ubiquiti_edgerouter
ubiquiti_edgeswitch
→
ubiquiti_edgeswitch
ubiquiti_unifiswitch
→
ubiquiti_unifiswitch
vmware_nsxv
→
vmware_nsxv
vyatta_vyos
→
vyatta_vyos
vyos
→
vyos
watchguard_firebox
→
watchguard_firebox
watchguard_fireware
→
watchguard_fireware
yamaha
→
yamaha
zte_zxros
→
zte_zxros
PyATS Mapper
NORMALIZED
PYATS
asa
→
cisco_asa
bigip
→
f5_tmsh
dnac
→
cisco_dnac
ios
→
cisco_ios
iosxe
→
cisco_ios
iosxr
→
cisco_xr
junos
→
juniper_junos
linux
→
linux
nxos
→
cisco_nxos
sros
→
nokia_sros
viptela
→
cisco_viptella
Reverse PyATS Mapper
PYATS
NORMALIZED
cisco_asa
→
asa
cisco_dnac
→
dnac
cisco_ios
→
iosxe
cisco_nxos
→
nxos
cisco_viptella
→
viptela
cisco_xr
→
iosxr
f5_tmsh
→
bigip
juniper_junos
→
junos
linux
→
linux
nokia_sros
→
sros
PyNTC Mapper
NORMALIZED
PYNTC
arista_eos_eapi
→
arista_eos
cisco_aireos_ssh
→
cisco_wlc
cisco_asa_ssh
→
cisco_asa
cisco_ios_ssh
→
cisco_ios
cisco_nxos_nxapi
→
cisco_nxos
f5_tmos_icontrol
→
f5_tmsh
juniper_junos_netconf
→
juniper_junos
Reverse PyNTC Mapper
PYNTC
NORMALIZED
arista_eos
→
arista_eos_eapi
cisco_asa
→
cisco_asa_ssh
cisco_ios
→
cisco_ios_ssh
cisco_nxos
→
cisco_nxos_nxapi
cisco_wlc
→
cisco_aireos_ssh
f5_tmsh
→
f5_tmos_icontrol
juniper_junos
→
juniper_junos_netconf
Scrapli Mapper
NORMALIZED
SCRAPLI
arista_eos
→
arista_eos
aruba_aoscx
→
aruba_aoscx
cisco_iosxe
→
cisco_ios
cisco_iosxr
→
cisco_xr
cisco_nxos
→
cisco_nxos
juniper_junos
→
juniper_junos
Reverse Scrapli Mapper
SCRAPLI
NORMALIZED
arista_eos
→
arista_eos
aruba_aoscx
→
aruba_aoscx
cisco_ios
→
cisco_iosxe
cisco_nxos
→
cisco_nxos
cisco_xr
→
cisco_iosxr
juniper_junos
→
juniper_junos