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},
....

Metadata

Release files for umnet-napalm 1.7.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for umnet-napalm 1.7.1
File Size Uploaded
umnet_napalm-1.7.1.tar.gz 366.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for umnet-napalm 1.7.1
File Interpreter ABI Platform
umnet_napalm-1.7.1-py3-none-any.whl Python 3 none any Details

Total release size: 446.2 kB

Release files / umnet_napalm-1.7.1.tar.gz

Download URL umnet_napalm-1.7.1.tar.gz
Size 366.0 kB
Tags Source
SHA-256 checksum
How to use checksums
740c7cd2ddc01e536ccb0eab97a1497ed3718266d9a5b19a1a6b700ced330d77
BLAKE2b-256 checksum
How to use checksums
174bc0cd977060eaae3f32892057c157b9ddfa0cd615706a7f0fd85d58728fc8
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release files / umnet_napalm-1.7.1-py3-none-any.whl

Download URL umnet_napalm-1.7.1-py3-none-any.whl
Size 80.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6d198ad0759da760919a0f313a53b5198be6a5232e81dced9f4ca438a41adb5a
BLAKE2b-256 checksum
How to use checksums
02a97d6100da5c803c71874d8cf32e8b861e09a4408ec7a5091275c445356dcb
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release history Release notifications | RSS feed

1.7.3

2 release files

1.7.2

2 release files

This release

1.7.1 This release

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.12

2 release files

1.1.11

2 release files

1.1.10

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

1 release file

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page