Files
napalm-linux/CHANGELOG.md
T
Christian Manivong 51ee33eebe
CI / test (3.10) (push) Failing after 16s
CI / test (3.11) (push) Failing after 16s
CI / test (3.12) (push) Successful in 39s
CI / test (3.10) (pull_request) Successful in 38s
CI / test (3.11) (pull_request) Successful in 36s
CI / test (3.12) (pull_request) Successful in 38s
feat: run commands and streams on an exec channel, reach the container engine
netOrk drove this driver's shell through the private `_send` (an
interactive PTY, stdout and stderr merged, no exit code) and opened its
own paramiko connections for Docker. napalm-device-types 2.6.0 makes the
channel public; this implements it (NetOrk/netork#765):

- `run_command()` and `open_stream()` open an exec channel on the SSH
  transport netmiko already holds: no second login, no PTY, a real exit
  status.
- `privileged=True` follows the driver's existing rules: as root the
  command runs directly; with a sudo password it goes through
  `sudo -S -p ''` and the password is written to stdin, never onto the
  command line; without one `sudo -n` fails at once instead of hanging.
- `ContainerEngineMixin` is mixed in, so `open_container_engine("docker")`
  streams the Engine API over `docker system dial-stdio`.

The existing Docker methods are unchanged. Version 0.2.0, requires
napalm-device-types >= 2.6.0.

Refs NAPALM/napalm-device-types#17
2026-10-07 17:59:32 +02:00

1.9 KiB
Raw Blame History

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

[0.2.0] – 2026-10-07

Added

  • run_command() and open_stream(), the public command channel from napalm-device-types 2.6.0: an exec channel on the existing SSH transport, so no PTY, separate stderr and a real exit code. privileged=True runs as root directly, through sudo -S with the password on stdin (never on the command line), or through sudo -n, which fails instead of prompting.
  • ContainerEngineMixin: container_engines() and open_container_engine(), whose open_api() streams the Docker Engine API over docker system dial-stdio (NetOrk/netork#765). The existing Docker methods are unchanged.

Changed

  • Requires napalm-device-types >= 2.6.0.

0.1.0 – 2026-05-29

Added

  • Initial release
  • LinuxDriver inheriting from napalm_device_types.OSDriver
  • SSH transport via Netmiko linux device type
  • Auto-detection of package manager: apt, dnf, yum, apk, pacman
  • Standard NAPALM methods: get_facts(), get_interfaces(), get_interfaces_ip(), get_arp_table(), get_config(), ping()
  • OS-specific methods: get_packages(), get_pending_updates(), apply_updates(), get_services(), get_users(), get_processes(), get_cron_jobs()
  • apply_updates() validates all package names against ^[a-zA-Z0-9_\-\+\.]+$ to prevent shell injection before passing them to the package manager
  • SysV fallback for get_services() on non-systemd systems
  • Unit tests with mocked SSH connections