cafe3d066e
Not all volume types put a 'volume_id' entry in the connection_info['data'] dict. This change uses a new utility method to look up the volume_id in the connection_info data dict and if not found there, uses the 'serial' value from the connection_info, which we know at least gets set when the DriverVolumeBlockDevice code attaches the volume. This also has to update pre_live_migration since the connection_info dict doesn't have a 'volume_id' key in it. It's unclear what this code was expecting, or if it ever really worked, but since an attached volume represented by a BlockDeviceMapping here has a volume_id attribute, we can just use that. As that code path was never tested, this updates related unit tests and refactors the tests to actually use the type of DriverVolumeBlockDevice objects that the ComputeManager would be sending down to the driver pre_live_migration method. The hard-to-read squashed dicts in the tests are also re-formatted so a human can actually read them. Change-Id: Ie02d298cd92d5b5ebcbbcd2b0e8be01f197bfafb Closes-Bug: #1746609 |
||
---|---|---|
.. | ||
storage | ||
volume | ||
__init__.py | ||
blockinfo.py | ||
compat.py | ||
config.py | ||
designer.py | ||
driver.py | ||
firewall.py | ||
guest.py | ||
host.py | ||
imagebackend.py | ||
imagecache.py | ||
instancejobtracker.py | ||
migration.py | ||
utils.py | ||
vif.py |