diff options
| author | Isaku Yamahata <yamahata@valinux.co.jp> | 2011-06-16 00:48:25 +0900 |
|---|---|---|
| committer | Isaku Yamahata <yamahata@valinux.co.jp> | 2011-06-16 00:48:25 +0900 |
| commit | 31ae0515fbf2dd8f931fb53ef08b40fe0206fc92 (patch) | |
| tree | e593c3c385ce46febed4f8b64752336e85fffff9 | |
| parent | a9800765f7eb8430c67d15953bed202752c2e199 (diff) | |
| download | nova-31ae0515fbf2dd8f931fb53ef08b40fe0206fc92.tar.gz nova-31ae0515fbf2dd8f931fb53ef08b40fe0206fc92.tar.xz nova-31ae0515fbf2dd8f931fb53ef08b40fe0206fc92.zip | |
_setup_block_device_mapping: raise ApiError when db inconsistency found
Instead of assert, log it and raise ApiError if db inconsistency in
block_device_mapping table is found.
| -rw-r--r-- | nova/compute/manager.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py index 7f7f0fa65..1c5d2c858 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -240,8 +240,16 @@ class ComputeManager(manager.SchedulerDependentManager): context, bdm['id'], {'volume_id': vol['id']}) bdm['volume_id'] = vol['id'] - assert ((bdm['snapshot_id'] is None) or - (bdm['volume_id'] is not None)) + if not ((bdm['snapshot_id'] is None) or + (bdm['volume_id'] is not None)): + LOG.error(_('corrupted state of block device mapping ' + 'id: %(id)s ' + 'snapshot: %(snapshot_id) volume: %(vollume_id)') % + {'id': bdm['id'], + 'snapshot_id': bdm['snapshot'], + 'volume_id': bdm['volume_id']}) + raise exception.ApiError(_('broken block device mapping %d') % + bdm['id']) if bdm['volume_id'] is not None: volume_api.check_attach(context, |
