Skip to content

Releases: networktocode/pyntc

v3.0.2 - 2026-05-28

28 May 21:20
8af4d76

Choose a tag to compare

Added

  • #395 - Added an install_mode property to BaseDevice (abstract) and IOSDevice; the IOS implementation returns True when the device boots from packages.conf.

Deprecated

  • #395 - Deprecated the install_mode argument to IOSDevice.install_os; install mode is now derived from the device's boot_options via the new install_mode property and will be removed in a future release.

Fixed

  • #394 - Fixed Junos reboots not being detected when waiting for the device to reload.
  • #394 - Increased the default Junos reboot wait timeout from 1 hour to 2 hours.

New Contributors

Full Changelog: v3.0.1...v3.0.2

v3.0.1 - 2026-05-26

26 May 18:48
bcad7f7

Choose a tag to compare

v3.0.1 (2026-05-26)

Added

  • #387 - Added an NXOSDevice.show_netmiko method and deprecated the existing NXOSDevice.show method that uses pynxos. Developers should transition to the show_netmiko method to prepare for the eventual removal of pynxos.

Changed

  • #387 - Changed the following NXOSDevice methods/properties to use Netmiko instead of pynxos: _image_booted, _wait_for_device_reboot, uptime, hostname, os_version, _get_file_system, _get_free_space, remote_file_copy, redundancy_state, reboot, set_boot_options, and startup_config.

Fixed

  • #387 - Fixed a bug in nxos where nx-api commands were mixed with ssh commands.
  • #387 - Fixed a bug in nxos _build_url_copy_command_simple returning the wrong type of data.
  • #387 - Fixed a bug in nxos failing to answer a prompt when using remote_file_copy.
  • #387 - Fixed NXOSDevice.os_version to use netmiko SSH instead of NX-API.
  • #387 - Fixed NXOSDevice.get_remote_checksum to use the correct show file command form and parse the digest out of the device output.
  • #387 - Fixed NXOSDevice.save to use netmiko SSH instead of NX-API.
  • #387 - Fixed NXOSDevice.show to use netmiko SSH instead of NX-API. Structured (non-raw_text) results are now TextFSM-parsed lists of dicts.
  • #387 - Fixed NXOSDevice._wait_for_device_reboot to drop the pre-reboot SSH session and reconnect each poll so it reliably detects when the device comes back from a reload.

Full Changelog: v3.0.0...v3.0.1

v3.0.0 - 2026-05-06

07 May 00:36
05339d4

Choose a tag to compare

v3.0.0 (2026-05-06)

Breaking Changes

  • #383 - The pyntc rotating file handler is now opt-in via the PYNTC_LOG_FILE environment variable. When unset, no log file is created. When set, its value is used as the log file path, and the handler is registered only once per logger to avoid duplicate entries on repeated get_log calls.

Full Changelog: v2.4.1...v3.0.0

v2.4.1 - 2026-05-01

01 May 19:50
9ca4c9d

Choose a tag to compare

v2.4.1 (2026-05-01)

Fixed

  • #380 - Fixed nxos install_os waiting for the device to reboot even if a reboot was not requested.

Contributors

Full Changelog: v2.4.0...v2.4.1

v2.4.0 - 2026-04-30

30 Apr 16:28
5afcdb2

Choose a tag to compare

Release Overview

  • Add ability to check for sufficient free space before copying files to devices, with support for EOS, IOS, ASA, and JunOS platforms.
  • Added reboot flag to Device.install_os for supported platforms.

v2.4.0 (2026-04-30)

Added

  • #370 - Added a pre-transfer free-space check to EOS file_copy and remote_file_copy that raises NotEnoughFreeSpaceError when the target filesystem lacks room for the image.
  • #370 - Added file_size_unit (bytes, megabytes, or gigabytes; default bytes) and a computed file_size_bytes to FileCopyModel so remote_file_copy can verify free space against a caller-supplied size; when file_size is omitted the pre-transfer check is skipped.
  • #371 - Added free space validation for file copy operations on IOS devices.
  • #372 - Added a pre-transfer free-space check to Cisco ASA file_copy and remote_file_copy that raises NotEnoughFreeSpaceError when the target filesystem lacks room for the image.
  • #373 - Added a pre-transfer free-space check to Juniper JunOS file_copy and remote_file_copy that raises NotEnoughFreeSpaceError when the target filesystem lacks room for the image.
  • #375 - Added free space validation for file copy operations on NXOS devices.
  • #376 - Added reboot flag to Device.install_os for supported platforms.
  • #376 - Vendored pynxos library and added reboot flag to Device.set_boot_options.

Changed

  • #356 - Bump dependencies

Contributors

New Contributors

Full Changelog: v2.3.0...v2.4.0

v2.3.0 - 2026-04-14

15 Apr 11:12
9934b2f

Choose a tag to compare

Release Overview

  • Added the ability to for remote file copy on Cisco NXOS, Cisco ASA, and Arista EOS operating systems.

v2.3.0 (2026-04-14)

Added

  • #365 - Added the remote file copy feature to Arista EOS devices.
  • #365 - Added unittests for remote file copy on Arista EOS devices.
  • #366 - Added remote_file_copy, check_file_exists, get_remote_checksum, and verify_file support for ASADevice (FTP, TFTP, SCP, HTTP, HTTPS).
  • #367 - Added remote file copy feature to Cisco NXOS devices.
  • #367 - Added unittests for remote file copy for Cisco NXOS devices.

Changed

  • #368 - Improved EOS remote file copy to validate scheme and query strings before connecting, use clean_url to prevent credential leakage, and simplify credential routing.
  • #368 - Changed copy command builders to include the source file path in the URL and use flash: as the destination, matching EOS CLI conventions.
  • #368 - Fixed _uptime_to_string to use integer division, preventing ValueError on format specifiers.
  • #368 - Fixed check_file_exists and get_remote_checksum to open the SSH connection before use, preventing AttributeError when called standalone.
  • #368 - Fixed password-prompt handling in remote_file_copy to wait for the transfer to complete before proceeding to verification.
  • #368 - Simplified checksum parsing in get_remote_checksum to use string splitting instead of regex.
  • #368 - Changed verify_file to return early when file does not exist and use case-insensitive checksum comparison.
  • #368 - Removed include_username parameter from remote_file_copy in favor of automatic credential routing based on scheme and username presence.

Removed

  • #364 - Removed log.init from iosxewlc device.
  • #364 - Removed warning filter for logging.

Fixed

  • #366 - Fixed ASADevice._get_file_system to use re.search instead of re.match so the filesystem label is correctly parsed regardless of leading whitespace in dir output.
  • #366 - Fixed ASADevice._send_command to anchor the % error pattern to the start of a line (^% ) to prevent false-positive CommandError raises during file copy operations.
  • #366 - Fixed ASADevice.active_redundancy_states to include "disabled" so standalone (non-failover) units are correctly treated as active.

Housekeeping

  • #368 - Converted EOS remote file copy tests from hypothesis/pytest standalone functions to unittest TestCase with self.assertRaises and subTest for consistency with the rest of the codebase.
  • #368 - Removed duplicate test class TestRemoteFileCopyCommandExecution and consolidated into TestRemoteFileCopy.
  • #368 - Added integration tests for EOS device connectivity and remote file copy across FTP, TFTP, SCP, HTTP, HTTPS, and SFTP protocols.

New Contributors

Full Changelog: v2.2.1...v2.3.0

v2.2.1 - 2026-04-08

08 Apr 17:59
6aaeaaf

Choose a tag to compare

v2.2.1 (2026-04-08)

Added

  • #360 - Added support for Python 3.14.

Fixed

  • #354 - Fixed Github release publishing failing.

Contributors

Full Changelog: v2.2.0...v2.2.1

v2.2.0 - 2026-03-07

07 Mar 17:01
31f3509

Choose a tag to compare

What's Changed

v2.2 Release Notes

  • Added OS upgrade support for Junos devices.

v2.2.0 (2026-03-09)

Added

  • #350 - Added OS upgrade support for Junos devices.

New Contributors

Full Changelog: v2.1.0...v2.2.0

v2.1.0 - 2026-03-03

03 Mar 20:27
2fb374a

Choose a tag to compare

What's Changed

v2.1.0 (2026-03-03)

Added

  • #345 - Added the ability to download files from within a Cisco IOS device.

Housekeeping

  • #335 - Replaced black, bandit, flake8 and pydocstyle with ruff.
  • #335 - Updated tasks.py with newest task list.
  • #335 - Updated to using pyinvoke for development environment definition.
  • Fixed docs build and code-reference issues.
  • Rebaked from the cookie main.

New Contributors

Full Changelog: v2.0.2...v2.1.0

v2.0.2

08 Jan 16:10
aaea4fc

Choose a tag to compare

What's Changed

Full Changelog: v2.0.1...v2.0.2