From 67c86e4ff6e7e8c61119b7d2b47c7d9b6b20aeca Mon Sep 17 00:00:00 2001 From: Boris Filippov Date: Thu, 15 Dec 2011 16:09:46 +0400 Subject: [PATCH] Fix "nova rebuild" --- nova/compute/manager.py | 16 +++++++++++----- 1 files changed, 11 insertions(+), 5 deletions(-) diff --git a/nova/compute/manager.py b/nova/compute/manager.py index d6912bb..792baa3 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -456,15 +456,20 @@ class ComputeManager(manager.SchedulerDependentManager): task_state=task_states.BLOCK_DEVICE_MAPPING) try: mapping = self._setup_block_device_mapping(context, instance) - swap, ephemerals, block_device_mapping = mapping + block_device_info = self._get_block_device_info(instance, mapping) except: msg = _("Instance %s failed block device setup") LOG.exception(msg % instance['uuid']) raise + return block_device_info + + def _get_block_device_info(self, instance, bd_mapping): + """Get block device info from instance and block device mapping""" + swap, ephemerals, block_device_mapping = bd_mapping return {'root_device_name': instance['root_device_name'], - 'swap': swap, - 'ephemerals': ephemerals, - 'block_device_mapping': block_device_mapping} + 'swap': swap, + 'ephemerals': ephemerals, + 'block_device_mapping': block_device_mapping} def _spawn(self, context, instance, image_meta, network_info, block_device_info, injected_files, admin_pass): @@ -686,6 +691,7 @@ class ComputeManager(manager.SchedulerDependentManager): network_info = self.network_api.get_instance_nw_info(context, instance) bd_mapping = self._setup_block_device_mapping(context, instance) + block_device_info = self._get_block_device_info(instance, bd_mapping) self._instance_update(context, instance_uuid, @@ -698,7 +704,7 @@ class ComputeManager(manager.SchedulerDependentManager): image_meta = _get_image_meta(context, instance['image_ref']) self.driver.spawn(context, instance, image_meta, - network_info, bd_mapping) + network_info, block_device_info) current_power_state = self._get_power_state(context, instance) self._instance_update(context, -- 1.7.6.4