Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 3 additions & 7 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,9 @@ jobs:
runs-on: "ubuntu-latest"
if: "startsWith(github.ref, 'refs/tags/v')"
needs: "build"
environment: "pypi"
# Steps to publish to PyPI.
# IMPORTANT: this permission is mandatory for trusted publishing.
permissions:
id-token: "write"
steps:
- name: "Retrieve built package from cache"
uses: "actions/download-artifact@v4"
Expand All @@ -65,11 +66,6 @@ jobs:
path: "dist/"
- name: "Publish package distributions to PyPI"
uses: "pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e" # v1.13.0
## Used for networktocode org since trusted publisher isn't supported for GitHub Plan.
with:
user: "__token__"
password: "${{ secrets.PYPI_API_TOKEN }}"
# End publish to PyPI job.

slack-notify:
needs:
Expand Down
11 changes: 11 additions & 0 deletions docs/admin/release_notes/version_3.2.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,17 @@ This document describes all new features and changes in the release. The format
- Fixed Arista EOS reboot detection when waiting for a device to reload.

<!-- towncrier release notes start -->
## [v3.2.3a0 (2026-08-12)](https://github.com/networktocode/pyntc/releases/tag/velease-3.2.3a0)

### Added

- [#413](https://github.com/networktocode/pyntc/issues/413) - Added Juniper SRX Chassis Cluster upgrade support when ICU.
- [#418](https://github.com/networktocode/pyntc/issues/418) - Added the `arista_eos_ssh` device type, an SSH-only Arista EOS driver for environments where eAPI is not enabled; it exposes the same API as `arista_eos_eapi` and obtains structured data via the CLI's `| json` pipe.

### Housekeeping

- Work on trusted publisher for networktocode org.

## [v3.2.2 (2026-08-04)](https://github.com/networktocode/pyntc/releases/tag/v3.2.2)

### Fixed
Expand Down
5 changes: 4 additions & 1 deletion docs/user/lib_getting_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,19 @@ The first way is to use the `ntc_device` object. Just pass in all required param

Like many libraries, we need to pass in the host/IP and credentials. Because this is a multi-vendor/API library, we also use the `device_type` parameter to identify which device we are building an instance of.

pyntc currently supports seven device types:
pyntc currently supports the following device types:

- cisco_aireos_ssh
- cisco_asa_ssh
- cisco_ios_ssh
- cisco_nxos_nxapi
- arista_eos_eapi
- arista_eos_ssh
- juniper_junos_netconf
- f5_tmos_icontrol

Arista EOS is supported over two transports. `arista_eos_eapi` uses eAPI (JSON-RPC over HTTP/HTTPS) and requires `management api http-commands` to be enabled on the device. `arista_eos_ssh` uses SSH only, for environments where eAPI is not available; it exposes exactly the same methods and properties as the eAPI driver, so the two are interchangeable.

The example below shows how to build a device object when working with a Cisco IOS router.

```python
Expand Down
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@ nav:
- pyntc.devices.asa_device: "code-reference/pyntc/devices/asa_device.md"
- pyntc.devices.base_device: "code-reference/pyntc/devices/base_device.md"
- pyntc.devices.eos_device: "code-reference/pyntc/devices/eos_device.md"
- pyntc.devices.eos_ssh_device: "code-reference/pyntc/devices/eos_ssh_device.md"
- pyntc.devices.f5_device: "code-reference/pyntc/devices/f5_device.md"
- pyntc.devices.ios_device: "code-reference/pyntc/devices/ios_device.md"
- pyntc.devices.iosxewlc_device: "code-reference/pyntc/devices/iosxewlc_device.md"
Expand Down
2 changes: 2 additions & 0 deletions pyntc/devices/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from .aireos_device import AIREOSDevice
from .asa_device import ASADevice
from .eos_device import EOSDevice
from .eos_ssh_device import EOSSSHDevice
from .f5_device import F5Device
from .ios_device import IOSDevice
from .iosxewlc_device import IOSXEWLCDevice
Expand All @@ -13,6 +14,7 @@
supported_devices = {
"cisco_asa_ssh": ASADevice,
"arista_eos_eapi": EOSDevice,
"arista_eos_ssh": EOSSSHDevice,
"f5_tmos_icontrol": F5Device,
"cisco_ios_ssh": IOSDevice,
"cisco_iosxr_ssh": IOSXRDevice,
Expand Down
Loading
Loading