Files
napalm-qnap-qts/CHANGELOG.md
T
Christian Manivong dd785da94f
driver / standard (pull_request) Successful in 15s
driver / lint (pull_request) Successful in 11s
driver / types (pull_request) Successful in 54s
driver / test (3.10) (pull_request) Successful in 59s
driver / test (3.11) (pull_request) Successful in 55s
driver / test (3.12) (pull_request) Successful in 57s
driver / lowest (pull_request) Successful in 30s
driver / test (3.13) (pull_request) Successful in 49s
driver / build (pull_request) Successful in 25s
driver / security (pull_request) Successful in 57s
CI / driver (pull_request) Successful in 3m6s
driver / publish (pull_request) Skipped
chore: adopt the NAPALM driver standard
- CI moves to .gitea/workflows/ci.yml and calls the shared driver workflow
  of NAPALM/driver-standard; napalm-device-types and napalm-linux come from
  git until napalm-linux 0.15.0 is on PyPI.
- requires-python >=3.10 (napalm-device-types needs it), SPDX license
  string, setuptools>=77, LICENSE file, py.typed, Issues and Changelog
  links.
- Dependencies: napalm-device-types>=4.22.0, napalm-linux>=0.15.0; the
  floors napalm>=4.0, netmiko>=4.0.0 and paramiko>=5.0.0 stay and pass
  the tests at exactly those versions. The dev extra gets floors and
  drops black (ruff formats).
- mypy strict for the whole package, no exempt module. install_package
  and uninstall_package keep napalm-device-types' PackagesMixin
  signatures, which LinuxDriver's differ from: type: ignore[override]
  on those two lines, with the reason above them.
- Coverage floor 76 % (measured 76.19 %); the quality baseline is empty
  apart from it.
2026-10-23 12:09:52 +02:00

2.6 KiB
Raw Blame History

Changelog

All notable changes to this project are documented here.

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

[Unreleased]

Changed

  • The driver follows the NAPALM driver standard (https://git.netork.io/NAPALM/driver-standard): CI on Gitea runs ruff, mypy, the tests on Python 3.10–3.13 and at the lowest declared versions, bandit, pip-audit and a build check, and a release tag publishes to PyPI. The package now ships py.typed and a LICENSE file. It needs napalm-device-types 4.22.0 and napalm-linux 0.15.0. Python 3.9 is no longer supported; napalm-device-types never ran on it.

[0.4.0] – 2026-10-17

Changed

  • Requires napalm-linux 0.8.0, whose fixes are napalm-device-types' templates. configure_snmp_agent, configure_package_proxy and ensure_package are switched off (None): QTS has no apt, dnf or opkg, and its SNMP agent is set in its own UI. Before, the inherited SNMP and apt-proxy fixes were offered and failed.

Fixed

  • get_device_warnings no longer logs a TypeError on every poll: the inherited one asked for updates, which QTS cannot list (#6).

[0.3.0] – 2026-10-08

Removed

  • The _docker_bin() override: napalm-linux 0.3.0 drops the Docker CLI methods it served. _container_engine_binary("docker") returns Container Station's path itself.

Changed

  • Requires napalm-linux >= 0.3.0.

[0.2.0] – 2026-10-07

Added

  • _container_engine_binary returns Container Station's docker path, so the container engine connection from napalm-device-types 2.6.0 (open_container_engine("docker")) reaches it although it is not on PATH. Callers pass arguments only and never see the path (NetOrk/netork#765).

Changed

  • Requires napalm-device-types >= 2.6.0 and napalm-linux >= 0.2.0.

[0.1.0]

Added

  • Initial driver scaffold: QnapQtsDriver(StorageDriver, LinuxDriver) with discovery fingerprints (SNMP enterprise OID 1.3.6.1.4.1.24681, HTTP, port specs) and the qnap_qts entry point.
  • Explicit DEVICE_CLASS = "storage" so netOrk does not classify a QNAP as a plain Linux host and hide its Storage tab.
  • QTS major-version detection, Container Station docker path discovery and Virtualization Station virsh discovery, all resolved once per session in open().
  • MRO collision resolution for get_services, which StorageDriver would otherwise shadow.
  • tools/harvest.sh and tools/sanitize.py for capturing and anonymising command output from real hardware.

Pending

  • Storage, QPKG and VM parsers — blocked on the fixture harvest.