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.4

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.4
File Size Uploaded
nornir_nokia-0.1.4.tar.gz 11.8 kB Details

Built distribution (wheel)

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

Total release size: 24.2 kB

Release files / nornir_nokia-0.1.4.tar.gz

Download URL nornir_nokia-0.1.4.tar.gz
Size 11.8 kB
Tags Source
SHA-256 checksum
How to use checksums
aa0aed62f531a0376a63ce92beb19da3962ff1af316d83946d5f7765247bd962
BLAKE2b-256 checksum
How to use checksums
afa9487f82fe9b815596c30ea140b9cc1d6dd86b91fe97e8e2d8549a3eeaaf28
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.4-py3-none-any.whl

Download URL nornir_nokia-0.1.4-py3-none-any.whl
Size 12.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
45c772112c154b7e212b564c2033f1442d1a354bf9d1ee54f9f3c6e491bf4ec3
BLAKE2b-256 checksum
How to use checksums
7942fe8265fba76221bca29fa211cd68989c690d981751782cdcd89bf1e05f95
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

This release

0.1.4 This release

2 release files

0.1.3

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