From 0f57745725301bf1b4b3a4ab0094ec7a80969456 Mon Sep 17 00:00:00 2001 From: Christian Manivong Date: Fri, 21 Aug 2026 12:50:27 +0700 Subject: [PATCH] refactor: inherit StorageDriver instead of working around it An OMV box is a NAS built on Debian, but this driver inherited LinuxDriver alone and implemented the storage getters by name, because inheriting StorageDriver as well would have let its NotImplementedError stubs shadow LinuxDriver's working package and service methods. DEVICE_CLASS = "storage" then existed to tell netOrk what the class hierarchy no longer said. napalm-device-types v1.0 makes role bases declaration-only, so both roles can be declared honestly and in the order that matters: class OpenMediaVaultDriver(StorageDriver, LinuxDriver): device_class comes from that first base now, so DEVICE_CLASS is gone. --- .../openmediavault.cpython-312.pyc | Bin 25638 -> 25780 bytes napalm_openmediavault/openmediavault.py | 21 +++++++++--------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/napalm_openmediavault/__pycache__/openmediavault.cpython-312.pyc b/napalm_openmediavault/__pycache__/openmediavault.cpython-312.pyc index 96a292ff1700ab98322cef63d18f45a90aa9db91..6022e63e165df1d0dd5558f5f1548d86a1d923b3 100644 GIT binary patch delta 2934 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 yP2A@>3vB|&*uL&Yw`6QBXX;yN32