Bug 1041726

Summary: [RFE][cinder]: Stackable/flexible protocol to attach/detach volumes
Product: Red Hat OpenStack Reporter: RHOS Integration <rhos-integ>
Component: RFEsAssignee: RHOS Maint <rhos-maint>
Status: CLOSED UPSTREAM QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: markmc, yeylon
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://blueprints.launchpad.net/cinder/+spec/stackable-transaction
Whiteboard: upstream_milestone_none upstream_status_not-started upstream_definition_obsolete
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-19 17:15:03 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description RHOS Integration 2013-12-12 18:50:40 UTC
Cloned from launchpad blueprint https://blueprints.launchpad.net/cinder/+spec/stackable-transaction.

Description:

Now cinder and nova have fixed protocol to attach/detach volumes. If volume drivers can do many transactions between cinder-volume and nova-compute (or cinder-agent), they can extend its capability like dynamic client ACL management or authentication. To do it, each driver should have function lists for attaching/detaching volumes and cinder/nova-side volume drivers should be able to call any function in the lists at the other-side with any arguments.

For example:
Nova-side function list: [begin_attaching, get_connection_info, connect_volume],  [begin_detaching, disconnect_volume, finish_detaching]
Cinder-side function list: [reserve, initialize_connection, attach], [begin_detaching, terminate_connection, detach]

Attaching protocol: nova:begin_attaching > cinder:reserve > nova:get_connection_info > cinder:initialize_connection > nova:connect_volume > cinder:attach

Detaching protocol: nova:begin_detaching > cinder: begin_detaching > nova:disconnect_volume > > cinder:terinate_connection > nova:finish_detaching > cinder:detach

Specification URL (additional information):

None