diff --git a/nova/tests/unit/virt/test_block_device.py b/nova/tests/unit/virt/test_block_device.py index de90a1972ad2..11096c6d766a 100644 --- a/nova/tests/unit/virt/test_block_device.py +++ b/nova/tests/unit/virt/test_block_device.py @@ -248,6 +248,8 @@ class TestDriverBlockDevice(test.NoDBTestCase): self.context, inst, vol_api, virt) self.assertFalse(log.exception.called) self.assertTrue(log.warning.called) + vol_api.roll_detaching.assert_called_once_with(self.context, + driver_bdm.volume_id) def test_no_device_raises(self): for name, cls in self.driver_classes.items(): diff --git a/nova/virt/block_device.py b/nova/virt/block_device.py index cd38085453e8..f224398d2251 100644 --- a/nova/virt/block_device.py +++ b/nova/virt/block_device.py @@ -322,6 +322,7 @@ class DriverVolumeBlockDevice(DriverBlockDevice): with excutils.save_and_reraise_exception(): LOG.warning('Guest refused to detach volume %(vol)s', {'vol': volume_id}, instance=instance) + volume_api.roll_detaching(context, volume_id) except Exception: with excutils.save_and_reraise_exception(): LOG.exception('Failed to detach volume '