diff options
| author | Jenkins <jenkins@review.openstack.org> | 2013-01-31 20:50:07 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2013-01-31 20:50:07 +0000 |
| commit | c2e4630f08cef843aade19be237c4c31ff7fccf1 (patch) | |
| tree | e947d2d527202f4c28cd78a8be5d4b239e78a585 /nova/compute | |
| parent | d7ad6c1471bcb5ce128eff474d6e48546799c617 (diff) | |
| parent | 8705f49a4ad9c6f3a93f33e333475285a8f70a30 (diff) | |
Merge "Fix rebuild with volumes attached"
Diffstat (limited to 'nova/compute')
| -rw-r--r-- | nova/compute/manager.py | 20 |
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'], |
