Merge "Rename compute manager _check_dev_name to _add_missing_dev_names"

This commit is contained in:
Jenkins 2016-08-03 12:21:04 +00:00 committed by Gerrit Code Review
commit 7cf8ab7354
2 changed files with 24 additions and 12 deletions

View File

@ -1562,20 +1562,22 @@ class ComputeManager(manager.Manager):
'swap': swap,
'block_device_mapping': mapping})
def _check_dev_name(self, bdms, instance):
bdms_no_device_name = [x for x in bdms if x.device_name is None]
for bdm in bdms_no_device_name:
def _add_missing_dev_names(self, bdms, instance):
for bdm in bdms:
if bdm.device_name is not None:
continue
device_name = self._get_device_name_for_instance(instance,
bdms,
bdm)
bdms, bdm)
values = {'device_name': device_name}
bdm.update(values)
bdm.save()
def _prep_block_device(self, context, instance, bdms,
do_check_attach=True):
"""Set up the block device for an instance with error logging."""
try:
self._check_dev_name(bdms, instance)
self._add_missing_dev_names(bdms, instance)
block_device_info = driver.get_block_device_info(instance, bdms)
mapping = driver.block_device_info_get_mapping(block_device_info)
driver_block_device.attach_block_devices(

View File

@ -1261,8 +1261,14 @@ class ComputeVolumeTestCase(BaseTestCase):
manager = compute_manager.ComputeManager()
manager.use_legacy_block_device_info = False
block_device_info = manager._prep_block_device(self.context, instance,
bdms)
mock_bdm_saves = [mock.patch.object(bdm, 'save') for bdm in bdms]
with test.nested(*mock_bdm_saves):
block_device_info = manager._prep_block_device(self.context,
instance, bdms)
for bdm in bdms:
bdm.save.assert_called_once_with()
self.assertIsNotNone(bdm.device_name)
convert_swap.assert_called_once_with(bdms)
convert_ephemerals.assert_called_once_with(bdms)
@ -8970,7 +8976,7 @@ class ComputeAPITestCase(BaseTestCase):
None,
'/invalid')
def test_check_dev_name_assign_dev_name(self):
def test_add_missing_dev_names_assign_dev_name(self):
instance = self._create_fake_instance_obj()
bdms = [objects.BlockDeviceMapping(
**fake_block_device.FakeDbBlockDeviceDict(
@ -8984,12 +8990,16 @@ class ComputeAPITestCase(BaseTestCase):
'disk_bus': None,
'device_type': None
}))]
self.compute._check_dev_name(bdms, instance)
with mock.patch.object(objects.BlockDeviceMapping,
'save') as mock_save:
self.compute._add_missing_dev_names(bdms, instance)
mock_save.assert_called_once_with()
self.assertIsNotNone(bdms[0].device_name)
@mock.patch.object(compute_manager.ComputeManager,
'_get_device_name_for_instance')
def test_check_dev_name_skip_bdms_with_dev_name(self, mock_get_dev_name):
def test_add_missing_dev_names_skip_bdms_with_dev_name(self,
mock_get_dev_name):
instance = self._create_fake_instance_obj()
bdms = [objects.BlockDeviceMapping(
**fake_block_device.FakeDbBlockDeviceDict(
@ -9003,7 +9013,7 @@ class ComputeAPITestCase(BaseTestCase):
'disk_bus': None,
'device_type': None
}))]
self.compute._check_dev_name(bdms, instance)
self.compute._add_missing_dev_names(bdms, instance)
self.assertFalse(mock_get_dev_name.called)
def test_no_attach_volume_in_rescue_state(self):