NetApp Manila cDOT driver refactoring

Registered by Clinton Knight on 2014-12-17

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:
milestone icon 2015.1.0
Started by
Clinton Knight on 2015-01-16
Completed by
Ben Swartzlander on 2015-02-11

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bug/1410317,n,z

Addressed by: https://review.openstack.org/153622
    Manila NetApp cDOT driver refactoring

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.