Skip to main content

umnet-napalm

This is a project that augments the NAPALM library in ways that are relevant to our interests. More specifically, new getter functions have been implemented to pull data from routers and parse it into a vender agnostic format.

The following platforms all have their own umnet-napalm drivers. Most of these inherit from other libraries.

  • ASA does not inherit - the NAPALM community ASA driver uses the web API which is currently impractical for us.
  • IOS inherits napalm.ios.IOSDriver
  • IOSXRNetconf inherits napalm.iosxr_netconf.IOSXRNETCONFDriver
  • IOSXR is an ssh-based driver and does not inherit
  • Junos inherits napalm.junos.JunOSDriver
  • NXOS inherits napalm.nxos_ssh.NXOSSSHDriver
  • PANOS does not inherit - the NAPALM community PANOS driver but it doesn't support connecting via Panorama.

See the umnet_napalm Abstract Base Class definition to see what commands are supported across all platforms. For platforms that inherit from core NAPALM drivers, refer to the getter matrix. For PANOS see napalm-panos repo

Using umnet-napalm

When you install the code it comes with a cli script called umnet-napalm-get. You can use this to run a command against a particular device. Note that umnet-napalm doesn't inherently know the platform or the credentials to use. You can supply all of these on the cli as arguments, or you can set the credentials as environment variables. Here are the different environment variables you can set:

export NAPALM_PASSWORD=<redacted>
export NAPALM_USERNAME=automaton
export NAPALM_ENABLE=<redacted>

## only if you want to query ngfw devices
export PANORAMA_API_KEY=<redacted>

Note you currently can't pass a Panorama API key as a cli argument (because that's just messy) - you must set it in your environment. When querying a Panos device via Panorama you must provide --pan-host [panorama hostname] and --pan-serial [serial number of the firewall]

Here's some quick examples. You can reference umnet_napalm.models for expected output format. Output is in json:

amylieb@wintermute:~/src/agador$ uv run umnet-napalm-get dl-arbl-1 nxos_ssh get_inventory
[{'name': 'Slot 1',
  'part_number': 'N9K-C93360YC-FX2',
  'serial_number': 'FDO261320CY',
  'type': 'linecard'},
 {'name': 'Fan 1',
  'part_number': 'NXA-FAN-160CFM-PI',
  'serial_number': 'N/A',
  'type': 'fan'},
....
amylieb@wintermute:~/src/agador$ uv run umnet-napalm-get r-seb junos get_lag_interfaces
{'ae0': {'admin_up': True,
         'members': {'et-0/1/0': {'admin_up': False,
                                  'flags': 'AF',
                                  'oper_up': False}},
         'mlag_id': 0,
         'oper_up': False,
         'peer_link': False,
         'protocol': 'LACP'},
 'ae1': {'admin_up': True,
         'members': {'ge-11/1/0': {'admin_up': False,
                                   'flags': 'AF',
                                   'oper_up': False},
                     'ge-11/3/7': {'admin_up': False,
                                   'flags': 'AF',
                                   'oper_up': False}},
         'mlag_id': 0,
         'oper_up': False,
         'peer_link': False,
         'protocol': 'LACP'},**
amylieb@wintermute:~/src/agador$ umnet-napalm-get ngfw-1 panos get_active_routes --pan-host panorama-1 --pan-serial 010701000554
[{'age': 1874469,
  'learned_from': '10.250.0.114',
  'mpls_label': [],
  'nh_interface': None,
  'nh_ip': '10.250.0.114',
  'nh_table': 'default',
  'prefix': '0.0.0.0/0',
  'protocol': 'BGP',
  'vrf': 'default',
  'vxlan_endpoint': None,
  'vxlan_vni': None},
 {'age': 1874469,
  'learned_from': '10.224.191.241',
  'mpls_label': [],
  'nh_interface': 'ethernet2/14.233',
  'nh_ip': '10.224.191.241',
  'nh_table': 'default',
  'prefix': '10.224.14.32/29',
  'protocol': 'OSPF',
  'vrf': 'default',
  'vxlan_endpoint': None,
  'vxlan_vni': None},
....

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

umnet_napalm-1.7.0.tar.gz (381.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

umnet_napalm-1.7.0-py3-none-any.whl (80.2 kB view details)

Uploaded Python 3

File details

Details for the file umnet_napalm-1.7.0.tar.gz.

File metadata

  • Download URL: umnet_napalm-1.7.0.tar.gz
  • Upload date:
  • Size: 381.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Red Hat Enterprise Linux","version":"9.8","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for umnet_napalm-1.7.0.tar.gz
Algorithm Hash digest
SHA256 b7f2ce75652283f3cb015b79dea2a1a028d166adb36be1f6e05e29dcdc0469fe
MD5 7b7d1531f47f8674df81280af2d48ca9
BLAKE2b-256 d70a0abbb79f9d7278ecf6903c1613cb038639e4de8413b855510099a8cdef54

See more details on using hashes here.

File details

Details for the file umnet_napalm-1.7.0-py3-none-any.whl.

File metadata

  • Download URL: umnet_napalm-1.7.0-py3-none-any.whl
  • Upload date:
  • Size: 80.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Red Hat Enterprise Linux","version":"9.8","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for umnet_napalm-1.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 079c0c90f81e5acdfa56764ba512f71eeb69433394cde6dc947bcacc4d7816fa
MD5 98bc8e47a48343dc9bf97f86e5fcfe78
BLAKE2b-256 b5e01a0422e4eee61250ed53fa22c8fcf1b5adde4372db6f13387d8e65ad77f5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page