Ping Qiu
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
..
2025-11-04 13:02:22 -08:00
2026-01-07 13:06:08 -08:00
2026-02-22 13:47:29 -08:00
2026-02-23 16:27:08 -08:00
2026-01-03 22:45:48 -08:00
2026-03-08 16:52:37 -07:00
2026-03-02 11:34:06 -08:00
2019-03-03 10:17:44 -08:00
2025-12-05 15:59:12 -08:00
2026-01-07 13:06:08 -08:00
2025-12-26 13:26:25 -08:00
2026-01-07 13:06:08 -08:00
2025-12-16 12:41:04 -08:00
2026-01-16 19:48:09 -08:00
2025-10-24 01:26:42 -07:00
2026-01-07 13:06:08 -08:00
2025-11-25 19:35:19 -08:00
2026-01-29 14:42:09 -08:00
2026-01-29 21:45:15 -08:00
2025-08-11 16:45:13 -07:00
2026-01-26 22:59:43 -08:00
2025-06-24 08:44:06 -07:00
2026-01-07 13:06:08 -08:00
2025-11-21 14:46:32 -08:00
2025-06-24 08:44:06 -07:00
2025-11-28 11:52:57 -08:00
2025-07-16 23:39:27 -07:00
2025-08-21 08:28:07 -07:00
2026-02-06 21:54:43 -08:00
2025-12-12 12:51:48 -08:00
2026-01-29 21:45:15 -08:00
2026-02-20 18:42:00 -08:00
2025-12-14 21:56:07 -08:00
2025-12-14 21:56:07 -08:00
2026-02-03 17:43:58 -08:00
2026-03-06 01:06:51 -08:00
2026-03-05 00:52:05 -08:00
2026-03-06 00:05:17 -08:00
2026-03-06 01:06:51 -08:00
2026-03-06 00:05:17 -08:00
2026-03-07 21:30:14 -08:00
2026-03-07 21:30:14 -08:00
2026-01-07 13:06:08 -08:00
2026-02-04 08:48:55 -08:00
2026-03-06 01:06:51 -08:00
2026-03-06 01:06:51 -08:00
2026-01-07 13:06:08 -08:00
2022-07-29 00:17:28 -07:00
2025-12-19 00:15:39 -08:00
2026-01-11 12:31:46 -08:00
2026-01-23 12:25:11 -08:00
2026-03-07 21:30:14 -08:00
2026-02-22 23:45:48 -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
2025-11-26 08:01:19 -08:00
2025-09-04 05:39:56 -07:00
2026-03-06 01:06:51 -08:00
2026-03-02 11:34:06 -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-02 11:34:06 -08:00
2026-03-06 01:06:51 -08:00
2026-01-18 14:02:34 -08:00
2026-02-09 07:46:34 -08:00
2026-02-09 07:46:34 -08:00
2026-01-07 13:06:08 -08:00
2026-02-19 12:26:27 -08:00
2026-02-06 10:58:43 -08:00
2026-02-02 13:21:02 -08:00
2026-03-08 16:52:37 -07:00
2026-03-06 01:06:51 -08:00
2026-03-07 21:30:14 -08:00
2022-07-29 00:17:28 -07:00
2026-02-24 20:07:26 -08:00
2026-02-09 21:46:55 -08:00
2026-02-09 12:34:38 -08:00
2022-07-29 00:17:28 -07:00
2026-01-07 13:06:08 -08:00
2026-02-02 13:21:02 -08:00
2026-02-02 13:21:02 -08:00
2026-02-16 15:09:01 -08:00
2026-02-06 10:58:43 -08:00
2026-02-02 13:21:02 -08:00
2022-10-14 00:18:09 -07:00
2026-02-02 13:21:02 -08:00
2026-02-02 13:21:02 -08:00
2026-03-08 16:52:37 -07:00
2026-03-08 23:02:59 -07:00
2025-12-02 23:19:14 -08:00
2016-06-02 18:09:14 -07:00
2025-12-05 15:59:12 -08:00
2025-11-26 08:01:19 -08:00
2026-02-06 21:54:43 -08:00
2025-12-16 13:42:18 -08:00
2026-02-06 10:58:43 -08:00
2026-03-04 11:01:08 -08:00
2025-11-29 10:06:11 -08:00
2026-01-07 13:06:08 -08:00