feat(storcli2): top-level RAID controller composition adapter#73
Conversation
9c532af to
28550ac
Compare
326c95c to
0ade4e4
Compare
|
LGTM — composition adapter correctly wires all seven storcli2 components behind ports.RAIDController, constructor signatures match, compile-time interface check is present, and the smoke test exercises the full wiring. No issues found. |
28550ac to
3be14c1
Compare
0ade4e4 to
0ae498e
Compare
|
LGTM — composition correctly embeds all seven ports.RAIDController interfaces, shares the physicalDrivesGetter and logicalVolumesGetter instances with components that depend on them, and has a compile-time interface assertion plus a smoke test. No issues found. |
3be14c1 to
0c6c272
Compare
0ae498e to
0c6c272
Compare
|
LGTM |
Add raidcontroller.StorCLI2, composing the storcli2 components into the full ports.RAIDController surface: - Embeds the controller / physical-drive / logical-volume getters, the logical-volume manager, the cache setter, the JBOD setter and the blinker. - The physical-drive getter doubles as the JBOD setter and the logical-volume manager doubles as the cache setter, so those components are shared rather than constructed twice. - storcli2 supports every operation, so there are no ErrFunctionNotSupportedByImplementation stubs (DeletePDsFromLV's unsupported error is returned by the logical-volume manager itself). - NewStorCLI2 wires everything on a single injected runner; the same composition serves both the storcli2 and perccli2 binaries. A smoke test wires the full adapter on a mocked runner, asserts it satisfies ports.RAIDController, and drives one operation end to end. Issue: ARTESCA-17651
The top-level raidcontroller.StorCLI2 composition is now in place, so the DESIGN.md note no longer describes it as future work. Clarify that DeletePDsFromLV's unsupported error comes from the logical-volume manager itself rather than a composition-level stub. Partially addresses the storcli2 adapter documentation; binary-selection and fixture-layout docs remain. Issue: ARTESCA-17654
…ment The note that storcli2 "can't remove drives" reads as if a failed drive could not be replaced. Clarify that what is unsupported is shrinking a volume's member set (storcli's `start migrate option=remove`); replacing a failed drive (rebuild / hot-spare / copyback) keeps the member count, is a separate command family storcli2 still exposes, and is out of scope for raidmgmt regardless of controller. Issue: ARTESCA-17654
fc6b402 to
a40039e
Compare
96db516 to
8c539d3
Compare
|
LGTM — the composition correctly satisfies |
Summary
Adds the top-level
raidcontroller.StorCLI2composition adapter (ARTESCA-17651), the final piece of the decomposed storcli2/perccli2 adapter. Stacked on #72.ports.RAIDControllersurface: controller / physical-drive / logical-volume getters, logical-volume manager, cache setter, JBOD setter, blinker.JBODSetterand the logical-volume manager doubles as theLVCacheSetter, so those components are shared rather than constructed twice.ErrFunctionNotSupportedByImplementationstubs (unlike SmartArray);DeletePDsFromLV's unsupported error comes from the logical-volume manager itself.NewStorCLI2wires everything on a single injected runner — the same composition serves both the storcli2 and perccli2 binaries.Also updates the DESIGN.md note (separate commit, ARTESCA-17654) to mark the composition as implemented rather than future work.
Testing
go build,go vet,gofmt, and the full suite pass. A smoke test wires the full adapter on a mocked runner, asserts it satisfiesports.RAIDController, and drives one operation (StartBlink) end to end through the runner.Issue: ARTESCA-17651
🤖 Generated with Claude Code