
Ping QiuandClaude Opus 4.6
bbadeeb89b
feat: Phase 10 CP10-2 -- CSI NVMe/TCP node plugin, 210 tests
NVMe/TCP transport support in the CSI driver so Kubernetes pods can
mount block volumes via NVMe alongside (or instead of) iSCSI.
Transport selection: NVMe preferred when nvme_tcp module loaded +
metadata present + nvmeUtil available. Fail-fast on NVMe errors (no
silent iSCSI fallback). .transport file persists across CSI restarts.
Key changes:
- BuildNQN() single source of truth for NQN construction (naming.go)
- NVMeUtil interface + realNVMeUtil wrapping nvme-cli (nvme_util.go)
- NodeStageVolume/Unstage/Expand dual-transport paths (node.go)
- NvmeAddr/NQN fields in VolumeInfo, Controller contexts
- VolumeManager NvmeAddr()/VolumeNQN() getters
- BlockService NvmeListenAddr()/NQN() accessors
- 27 unit tests + 26 QA adversarial tests (nvme_node_test.go, qa_cp102)
- Fix: flaky TestQA_Node_ConcurrentStageUnstage (pre-alloc temp dirs)
Review fixes applied: F1 (NQN format mismatch), F2 (CreateVolume drops
NVMe context), F3 (IsConnected error classification), F4 (findSubsys
path validation), F5 (MasterVolumeClient NVMe gap documented).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 23:02:59 -07:00
..
2026-03-06 01:06:51 -08:00
2026-03-06 01:06:51 -08:00
2026-03-08 23:02:59 -07:00
2026-03-07 21:30:14 -08:00
2026-03-08 16:52:37 -07:00
2026-03-08 12:04:17 -07:00
2026-03-02 09:33:45 -08:00
2026-03-05 00:52:05 -08:00
2026-03-07 21:30:14 -08:00
2026-03-04 11:01:08 -08:00
2026-03-04 11:01:08 -08:00
2026-03-06 01:06:51 -08:00
2026-03-07 21:30:14 -08:00
2026-03-02 09:34:00 -08:00
2026-03-06 01:06:51 -08:00
2026-03-02 09:33:45 -08:00
2026-03-07 21:30:14 -08:00
2026-03-07 21:30:14 -08:00
2026-03-01 10:43:34 -08:00
2026-03-01 10:43:34 -08:00
2026-03-01 10:43:34 -08:00
2026-03-01 10:43:34 -08:00
2026-03-01 21:26:39 -08:00
2026-03-06 01:06:51 -08:00
2026-03-06 01:06:51 -08:00
2026-03-06 01:06:51 -08:00
2026-03-06 01:06:51 -08:00
2026-03-06 01:06:51 -08:00
2026-03-01 16:00:06 -08:00
2026-03-02 09:33:45 -08:00
2026-03-06 00:05:17 -08:00
2026-03-01 10:43:34 -08:00
2026-03-06 00:05:17 -08:00
2026-03-06 00:05:17 -08:00
2026-03-06 00:05:17 -08:00
2026-02-28 09:32:01 -08:00
2026-02-28 09:32:01 -08:00
2026-03-07 21:30:14 -08:00
2026-03-01 16:00:06 -08:00
2026-03-04 11:01:08 -08:00
2026-03-08 23:02:59 -07:00
2026-03-07 21:30:14 -08:00
2026-03-01 16:00:06 -08:00
2026-03-02 09:33:45 -08:00
2026-03-06 00:05:17 -08:00
2026-03-07 21:30:14 -08:00
2026-03-02 09:33:45 -08:00
2026-03-02 09:34:35 -08:00
2026-03-06 00:05:17 -08:00
2026-03-03 17:05:43 -08:00
2026-03-03 17:05:43 -08:00
2026-03-07 21:30:14 -08:00
2026-03-01 10:43:34 -08:00
2026-03-02 09:33:45 -08:00
2026-03-02 09:33:45 -08:00
2026-03-02 15:04:59 -08:00
2026-03-02 09:33:45 -08:00
2026-03-03 01:43:42 -08:00
2026-03-05 00:52:05 -08:00
2026-03-06 00:05:17 -08:00
2026-03-06 00:05:17 -08:00
2026-03-06 00:05:17 -08:00
2026-03-06 00:05:17 -08:00
2026-03-03 00:53:33 -08:00
2026-03-03 00:53:33 -08:00
2026-03-06 01:06:51 -08:00
2026-03-06 01:06:51 -08:00
2026-02-28 09:32:01 -08:00
2026-02-28 09:32:01 -08:00
2026-03-06 00:05:17 -08:00
2026-03-01 10:43:34 -08:00
2026-03-03 00:53:33 -08:00
2026-03-01 16:00:06 -08:00