summaryrefslogtreecommitdiffstats
path: root/nova/compute
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-01-31 20:50:07 +0000
committerGerrit Code Review <review@openstack.org>2013-01-31 20:50:07 +0000
commitc2e4630f08cef843aade19be237c4c31ff7fccf1 (patch)
treee947d2d527202f4c28cd78a8be5d4b239e78a585 /nova/compute
parentd7ad6c1471bcb5ce128eff474d6e48546799c617 (diff)
parent8705f49a4ad9c6f3a93f33e333475285a8f70a30 (diff)
Merge "Fix rebuild with volumes attached"
Diffstat (limited to 'nova/compute')
-rw-r--r--nova/compute/manager.py20
1 files changed, 10 insertions, 10 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index 831e825fe..eb2ce2c54 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -1366,18 +1366,18 @@ class ComputeManager(manager.SchedulerDependentManager):
block_device_mapping_get_all_by_instance(
context, instance)
- if recreate:
- for bdm in self._get_volume_bdms(bdms):
- volume = self.volume_api.get(context, bdm['volume_id'])
+ # NOTE(sirp): this detach is necessary b/c we will reattach the
+ # volumes in _prep_block_devices below.
+ for bdm in self._get_volume_bdms(bdms):
+ volume = self.volume_api.get(context, bdm['volume_id'])
+ self.volume_api.detach(context, volume)
- # We can't run volume disconnect on source because
- # the host is down. Just marking volume as detached
- # in db, anyway the zombie instance going to be deleted
- # from source during init_host when host comes back
- self.volume_api.detach(context.elevated(), volume)
- else:
+ if not recreate:
+ block_device_info = self._get_volume_block_device_info(
+ self._get_volume_bdms(bdms))
self.driver.destroy(instance,
- self._legacy_nw_info(network_info))
+ self._legacy_nw_info(network_info),
+ block_device_info=block_device_info)
instance = self._instance_update(
context, instance['uuid'],