From 39e8f5bd3bc976603c5a0a2dd4ada3dd6b79258d Mon Sep 17 00:00:00 2001 From: Chris Behrens Date: Mon, 3 Jun 2013 20:02:21 +0000 Subject: Cells: Add support for global cinder Implements cinder support for compute cells when cinder is a global installation. Adds syncing of the block device mapping table between child cells and API cells. Implements blueprint cells-cinder-support Change-Id: Ife5be9922db0742c8ee4f970517396be86597cce --- nova/db/sqlalchemy/api.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'nova/db') diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index d27f4e695..ebea0362b 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -3139,15 +3139,16 @@ def block_device_mapping_create(context, values, legacy=True): bdm_ref = models.BlockDeviceMapping() bdm_ref.update(values) bdm_ref.save() + return bdm_ref @require_context def block_device_mapping_update(context, bdm_id, values, legacy=True): _scrub_empty_str_values(values, ['volume_size']) values = _from_legacy_values(values, legacy, allow_updates=True) - _block_device_mapping_get_query(context).\ - filter_by(id=bdm_id).\ - update(values) + query = _block_device_mapping_get_query(context).filter_by(id=bdm_id) + query.update(values) + return query.first() def block_device_mapping_update_or_create(context, values, legacy=True): @@ -3163,6 +3164,7 @@ def block_device_mapping_update_or_create(context, values, legacy=True): bdm_ref = models.BlockDeviceMapping() bdm_ref.update(values) bdm_ref.save(session=session) + result = bdm_ref else: values = _from_legacy_values(values, legacy, allow_updates=True) result.update(values) @@ -3185,6 +3187,7 @@ def block_device_mapping_update_or_create(context, values, legacy=True): models.BlockDeviceMapping.guest_format == None, models.BlockDeviceMapping.guest_format != 'swap')). soft_delete()) + return result @require_context -- cgit