[openstack-dev] [cinder][nova] Is volume connection_info modeled/documented anywhere?

Matt Riedemann mriedem at linux.vnet.ibm.com
Wed Jun 10 13:54:47 UTC 2015

While investigating/discussing bug 1463525 [1] I remembered how little I 
know about what can actually come out of the connection_info dict 
returned from the os-initialize_connection cinder API call.

So we added some debug logging in nova and I remembered that there are 
potentially credentials (auth_password) stored in connection_info, so we 
have a bug to clean that up in Nova [2].

The plan is to model connection_info using objects where we have a 
parent object BdmConnectionInfo containing the common keys, like 
'driver_volume_type' and 'data', and then child objects for the 
vendor-specific connection_info objects, like RbdBdmConnectionInfo, 
ISCSIBdmConnectionInfo, etc.

The problem I have right now is knowing what can all be in there, since 
there are a ton of vendor drivers in Cinder.

Is anyone aware of a wiki page or devref or anything that documents what 
can be in that wild west connection_info dict?  If not, the first thing 
I was going to do was start documenting that - but where?  It seems it 
should really be modeled in Cinder since it is part of the API contract 
and if a vendor driver were to say rename or drop a key from the 
connection_info they were returning in os-initialize_connection it would 
be a backwards incompatible change.

Is devref best for this with a listing for each vendor driver?  At least 
then it would be versioned with the code and updates could be made as 
new keys are added to connection_info or new drivers are added to Cinder.

I'm looking for any advice here in how to get started since I don't 
primarily work on Cinder and don't have a full history here.

[1] https://bugs.launchpad.net/cinder/+bug/1463525
[2] https://bugs.launchpad.net/nova/+bug/1321785



Matt Riedemann

More information about the OpenStack-dev mailing list