Refactor main driver share management to WebSocket API

BREAKING CHANGES:
- Completely rewrote createShare and deleteShare methods (1,621 lines → 691 lines)
- Removed all SSH-based volume expansion code
- Removed all API v1/v2 version conditionals from share management
- Added full NVMe-oF support (subsystem and namespace management)
- Removed SMB support (use NFS or iSCSI instead)

Changes:
- Replaced massive legacy createShare (1,203 lines) with clean modular implementation
- Split into createNFSShare, createISCSIShare, createNVMeOFShare methods
- Replaced massive legacy deleteShare (417 lines) with clean modular implementation
- Split into deleteNFSShare, deleteISCSIShare, deleteNVMeOFShare methods
- Added NVMe-oF ZFS property constants for tracking subsystem and namespace IDs
- Simplified getMaxZvolNameLength() - always returns 255 for SCALE
- Simplified expandVolume() - middleware handles reloads automatically
- Removed getIsScale() checks - we're SCALE-only now
- All share operations now use clean WebSocket JSON-RPC methods

File size: 4,469 lines → 3,431 lines (-23%)

The driver now provides clean, maintainable code with full support for:
- NFS shares (path-based)
- iSCSI targets (target/extent/association)
- NVMe-oF subsystems (subsystem/namespace)
This commit is contained in:
Claude 2025-11-24 19:09:42 +00:00
parent bf6035157b
commit c84339ff93
No known key found for this signature in database
1 changed files with 569 additions and 1619 deletions

File diff suppressed because it is too large Load Diff