Skip to main content

nornir_nokia

Nokia SR OS pySROS Plugins for Nornir - supports both YANG model-driven and MD-CLI interactions with Nokia BNG devices.

Installation

pip install nornir_nokia

Features

  • Connection Plugin: Manages pySROS NETCONF connections to Nokia SR OS devices
  • CLI Connection Plugin: Manages Netmiko CLI SSH sessions via Nornir
  • YANG Configuration: Configure devices using YANG model-driven paths (candidate.set)
  • CLI Configuration: Configure devices using MD-CLI commands via Netmiko
  • Get Data: Retrieve operational/configuration data via YANG paths or CLI commands
  • Commit Operations: commit, commit confirm (with timer), compare, discard, rollback (cancel), lock/unlock

Usage

Inventory (hosts.yaml)

nokia_bng_01:
  hostname: 192.168.1.1
  username: admin
  password: admin
  port: 830
  platform: nokia_sros
  connection_options:
    nornir_nokia:
      extras:
        yang_directory: ./YANG
        hostkey_verify: false
        timeout: 300
    nornir_nokia_cli:
      extras:
        cli_port: 22
        timeout: 90
        fast_cli: false

YANG Configuration

from nornir import InitNornir
from nornir_nokia.tasks import nokia_yang_config, nokia_commit

nr = InitNornir(config_file="config.yaml")

# Set configuration via YANG
result = nr.run(
    task=nokia_yang_config,
    path='/nokia-conf:configure/system/name',
    value='my-router',
    commit=False,
)

# Compare candidate vs baseline
result = nr.run(task=nokia_commit, action="compare", output_format="md-cli")

# Commit with confirmation timer
result = nr.run(task=nokia_commit, action="commit", timer=60)

# Confirm commit (accept)
result = nr.run(task=nokia_commit, action="commit")

# Rollback (cancel confirmed commit)
result = nr.run(task=nokia_commit, action="rollback")

CLI Configuration

from nornir_nokia.tasks import nokia_cli_config, nokia_get

# Configure via MD-CLI
result = nr.run(
    task=nokia_cli_config,
    commands=[
        '/configure system name "my-router"',
        '/configure router interface "demo1" ipv4 primary address 192.168.1.1 prefix-length 24',
    ],
  mode="commit",
  comment="deploy via nornir",
)

# Compare candidate changes without committing
result = nr.run(
  task=nokia_cli_config,
  config='''
  /configure system location "nornir-compare"
  ''',
  mode="compare",
)

# Confirmed commit with timer
result = nr.run(
  task=nokia_cli_config,
  commands=['/configure system contact "nornir-confirmed"'],
  mode="commit",
  timer=120,
)

# Get operational data via CLI
result = nr.run(task=nokia_get, command='show version')

# Get data via YANG path
result = nr.run(task=nokia_get, path='/nokia-state:state/system/oper-name')

License

MIT

Metadata

Release files for nornir-nokia 0.1.3

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

Source distribution (sdist)

Source distribution for nornir-nokia 0.1.3
File Size Uploaded
nornir_nokia-0.1.3.tar.gz 11.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nornir-nokia 0.1.3
File Interpreter ABI Platform
nornir_nokia-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 24.1 kB

Release files / nornir_nokia-0.1.3.tar.gz

Download URL nornir_nokia-0.1.3.tar.gz
Size 11.6 kB
Tags Source
SHA-256 checksum
How to use checksums
73a0df16d8f5b4ffa035b21698cd7e54bd102b9682a1ffce084c9bc6d0c46449
BLAKE2b-256 checksum
How to use checksums
05b80427c32710f4614e1e5fcd5a56a9ee83654bb1c8ea8a86bf46b7bd3faa62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / nornir_nokia-0.1.3-py3-none-any.whl

Download URL nornir_nokia-0.1.3-py3-none-any.whl
Size 12.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3d168215de0ef40e3ee822de7c9fa45157e44a562bba6123433bf45204a40faf
BLAKE2b-256 checksum
How to use checksums
572dad69b87b5b84fa1d3a8485def1189f9795e929c1e088c0cc0b973c55fbd2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

0.1.4

2 release files

This release

0.1.3 This release

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