NetApp Manila cDOT driver refactoring
The Manila cDOT driver is a single file exceeding 1200 lines. It contains multiple things (driver code, protocol helpers, ZAPI invocation code, options) that should be split apart to allow for easier maintenance and readability and add the potential for code sharing when we reintroduce a 7-mode driver.
We recently refactored NetApp's DOT Cinder drivers into a 4-layer structure (interface, library, client, API) that separates concerns and achieves the goals set forth above. This blueprint represents a plan to do the same thing in Manila. The implementation steps are:
1. Update directory structure to match that of the Cinder NetApp drivers
2. Create driver interface shim
3. Move driver code to library (with base & C-mode classes, to allow for 7-mode code sharing later)
4. Move protocol helpers to separate files (already organized by base & C-mode classes :-)
5. Split out ZAPI code to client layer (with base & C-mode classes, to allow for 7-mode code sharing later)
6. Implement NetApp driver factory as in Cinder
7. Implement common NetApp options file as in Cinder
8. Look for cDOT API call optimizations
9. Update all unit tests as needed
Blueprint information
- Status:
- Complete
- Approver:
- Ben Swartzlander
- Priority:
- Low
- Drafter:
- Clinton Knight
- Direction:
- Approved
- Assignee:
- Clinton Knight
- Definition:
- Approved
- Series goal:
- Accepted for kilo
- Implementation:
- Implemented
- Milestone target:
- 2015.1.0
- Started by
- Clinton Knight
- Completed by
- Ben Swartzlander
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Manila NetApp cDOT driver refactoring