Skip to content

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