There is a lot of magic happening here and it's not clear to me what this is used for or why this isn't in the compute manager. I'm wondering if the block_device wrapper code in the virt driver is setting bdm.connection_info to None and updating that in the database in one part of the code and then when nova.compute.manager.detach_volume is called later it's None and we fail.
I'll push up some diagnostic logging patches to try and see what's going on.
This looks like what we'd want if bdm.connection_info is None, but this is down in the virt driver code:
http:// git.openstack. org/cgit/ openstack/ nova/tree/ nova/virt/ block_device. py?id=2014. 2.b3#n271
There is a lot of magic happening here and it's not clear to me what this is used for or why this isn't in the compute manager. I'm wondering if the block_device wrapper code in the virt driver is setting bdm.connection_info to None and updating that in the database in one part of the code and then when nova.compute. manager. detach_ volume is called later it's None and we fail.
I'll push up some diagnostic logging patches to try and see what's going on.