Files
napalm-opnsense/pyproject.toml
T
Christian Manivong 661b4fd7c7
CI / test (3.10) (push) Failing after 5s
CI / test (3.11) (push) Successful in 33s
CI / test (3.12) (push) Successful in 36s
fix: WireGuard peers keep their tunnel key when others come and go (#32) (0.4.1)
get_vpn_tunnels() keyed WireGuard peers with a running counter over the
peer rows, so a peer added ahead of an existing one renumbered every peer
after it. Whatever a consumer stores per key moved with it: netOrk's site
link and tunnel check ended up on a new, offline peer and alarmed while the
real tunnel was up.

The key is now the interface and the start of the public key, as in
napalm-linux, made URL-safe because the key is a path segment. Two peers
sharing the prefix get the whole key; a row without a public key keeps its
position. IPsec and OpenVPN keys were already stable.

Every WireGuard key changes once with this release; netOrk carries its
per-tunnel metadata across (netork#1654).
2026-10-27 09:10:42 +01:00

55 lines
1.2 KiB
TOML

[build-system]
requires = ["setuptools>=68", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "napalm-opnsense"
version = "0.4.1"
description = "NAPALM driver for OPNsense (read-only via REST API)."
readme = "README.md"
license = { text = "Apache-2.0" }
requires-python = ">=3.10"
authors = [
{ name = "Christian Manivong" },
]
classifiers = [
"Topic :: Utilities",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Operating System :: POSIX :: Linux",
"Operating System :: MacOS",
]
dependencies = [
"napalm>=4.0.0",
"napalm_device_types>=4.17.0",
"requests>=2.28.0",
]
[project.optional-dependencies]
dev = [
"pytest",
"pytest-cov",
"black",
"ruff",
]
[project.entry-points."napalm.drivers"]
opnsense = "napalm_opnsense.opnsense:OPNsenseDriver"
[project.urls]
Repository = "https://github.com/napalm-automation-community/napalm-opnsense"
[tool.setuptools.packages.find]
where = ["."]
include = ["napalm_opnsense*"]
[tool.ruff]
line-length = 100
target-version = "py39"
[tool.pytest.ini_options]
testpaths = ["tests"]