Merge "Move db lookup for block device mappings."
This commit is contained in:
commit
98032e804a
|
@ -501,13 +501,12 @@ class ComputeManager(manager.SchedulerDependentManager):
|
|||
network_info = network_info.legacy()
|
||||
return network_info
|
||||
|
||||
def _setup_block_device_mapping(self, context, instance):
|
||||
def _setup_block_device_mapping(self, context, instance, bdms):
|
||||
"""setup volumes for block device mapping"""
|
||||
block_device_mapping = []
|
||||
swap = None
|
||||
ephemerals = []
|
||||
for bdm in self.db.block_device_mapping_get_all_by_instance(
|
||||
context, instance['uuid']):
|
||||
for bdm in bdms:
|
||||
LOG.debug(_('Setting up bdm %s'), bdm, instance=instance)
|
||||
|
||||
if bdm['no_device']:
|
||||
|
@ -583,6 +582,8 @@ class ComputeManager(manager.SchedulerDependentManager):
|
|||
context, instance, "create.start",
|
||||
extra_usage_info=extra_usage_info)
|
||||
network_info = None
|
||||
bdms = self.db.block_device_mapping_get_all_by_instance(
|
||||
context, instance['uuid'])
|
||||
rt = self._get_resource_tracker(instance.get('node'))
|
||||
try:
|
||||
limits = filter_properties.get('limits', {})
|
||||
|
@ -591,7 +592,7 @@ class ComputeManager(manager.SchedulerDependentManager):
|
|||
network_info = self._allocate_network(context, instance,
|
||||
requested_networks)
|
||||
block_device_info = self._prep_block_device(context,
|
||||
instance)
|
||||
instance, bdms)
|
||||
instance = self._spawn(context, instance, image_meta,
|
||||
network_info, block_device_info,
|
||||
injected_files, admin_password)
|
||||
|
@ -828,13 +829,13 @@ class ComputeManager(manager.SchedulerDependentManager):
|
|||
|
||||
return network_info
|
||||
|
||||
def _prep_block_device(self, context, instance):
|
||||
def _prep_block_device(self, context, instance, bdms):
|
||||
"""Set up the block device for an instance with error logging"""
|
||||
self._instance_update(context, instance['uuid'],
|
||||
vm_state=vm_states.BUILDING,
|
||||
task_state=task_states.BLOCK_DEVICE_MAPPING)
|
||||
try:
|
||||
return self._setup_block_device_mapping(context, instance)
|
||||
return self._setup_block_device_mapping(context, instance, bdms)
|
||||
except Exception:
|
||||
LOG.exception(_('Instance failed block device setup'),
|
||||
instance=instance)
|
||||
|
@ -1226,7 +1227,10 @@ class ComputeManager(manager.SchedulerDependentManager):
|
|||
instance.injected_files = injected_files
|
||||
network_info = self.network_api.get_instance_nw_info(context,
|
||||
instance)
|
||||
device_info = self._setup_block_device_mapping(context, instance)
|
||||
bdms = self.db.block_device_mapping_get_all_by_instance(
|
||||
context, instance['uuid'])
|
||||
device_info = self._setup_block_device_mapping(context, instance,
|
||||
bdms)
|
||||
|
||||
instance = self._instance_update(context,
|
||||
instance['uuid'],
|
||||
|
|
|
@ -1483,7 +1483,7 @@ class ComputeTestCase(BaseTestCase):
|
|||
|
||||
self.mox.StubOutWithMock(self.compute, "_setup_block_device_mapping")
|
||||
self.compute._setup_block_device_mapping(
|
||||
mox.IgnoreArg(),
|
||||
mox.IgnoreArg(), mox.IgnoreArg(),
|
||||
mox.IgnoreArg()).AndRaise(rpc.common.RemoteError('', '', ''))
|
||||
|
||||
self.mox.ReplayAll()
|
||||
|
|
Loading…
Reference in New Issue