Files
christianmanivong 26d723f417 feat: initial QNAP QTS driver scaffold
QTS is a Linux distribution, so the driver inherits the OS surface from
LinuxDriver and adds QNAP's storage, QPKG and virtualisation layers.

What is here: the class with its discovery fingerprints, per-session
detection of the QTS major version and of the QPKG-local docker and virsh
binaries, and explicit resolution of the MRO collisions that StorageDriver
creates over LinuxDriver.

What is not: the storage, QPKG and VM parsers. Those need real command
output from QTS 4 and QTS 5 hardware to be written against, which is what
tools/harvest.sh collects and tools/sanitize.py anonymises. Two tests are
marked xfail(strict) as the specification for that work.
2026-08-21 09:53:13 +07:00

1.0 KiB

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]

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.