diff options
author | Boris Pavlovic <boris@pavlovic.me> | 2013-03-12 11:10:54 +0400 |
---|---|---|
committer | Boris Pavlovic <boris@pavlovic.me> | 2013-03-13 00:22:21 +0400 |
commit | 32ceb7ae28ef85e93669273bd04689c96228c564 (patch) | |
tree | 3dd96cd21334917a7c5a67179df67d2b5cddac7a | |
parent | 27b4c62b69464ce1211e91dbc61643ae47798ccd (diff) | |
download | nova-32ceb7ae28ef85e93669273bd04689c96228c564.tar.gz nova-32ceb7ae28ef85e93669273bd04689c96228c564.tar.xz nova-32ceb7ae28ef85e93669273bd04689c96228c564.zip |
Refactor work with session in db.block_device_mapping_* methods
Remove explicit use of session where it is not required.
Also this is small performance optimization, because if we put
session parameter to Models.save() method will create subtransaction.
blueprint db-session-cleanup
Change-Id: I6064f3df2daf0178009c4cf40da293f71ca6972a
-rw-r--r-- | nova/db/sqlalchemy/api.py | 32 |
1 files changed, 11 insertions, 21 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index 0bd9cfce7..e629281c5 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -2830,19 +2830,14 @@ def _block_device_mapping_get_query(context, session=None): def block_device_mapping_create(context, values): bdm_ref = models.BlockDeviceMapping() bdm_ref.update(values) - - session = get_session() - with session.begin(): - bdm_ref.save(session=session) + bdm_ref.save() @require_context def block_device_mapping_update(context, bdm_id, values): - session = get_session() - with session.begin(): - _block_device_mapping_get_query(context, session=session).\ - filter_by(id=bdm_id).\ - update(values) + _block_device_mapping_get_query(context).\ + filter_by(id=bdm_id).\ + update(values) @require_context @@ -2865,7 +2860,8 @@ def block_device_mapping_update_or_create(context, values): virtual_name = values['virtual_name'] if (virtual_name is not None and block_device.is_swap_or_ephemeral(virtual_name)): - session.query(models.BlockDeviceMapping).\ + + _block_device_mapping_get_query(context, session=session).\ filter_by(instance_uuid=values['instance_uuid']).\ filter_by(virtual_name=virtual_name).\ filter(models.BlockDeviceMapping.device_name != @@ -2882,19 +2878,15 @@ def block_device_mapping_get_all_by_instance(context, instance_uuid): @require_context def block_device_mapping_destroy(context, bdm_id): - session = get_session() - with session.begin(): - session.query(models.BlockDeviceMapping).\ - filter_by(id=bdm_id).\ - soft_delete() + _block_device_mapping_get_query(context).\ + filter_by(id=bdm_id).\ + soft_delete() @require_context def block_device_mapping_destroy_by_instance_and_volume(context, instance_uuid, volume_id): - session = get_session() - with session.begin(): - _block_device_mapping_get_query(context, session=session).\ + _block_device_mapping_get_query(context).\ filter_by(instance_uuid=instance_uuid).\ filter_by(volume_id=volume_id).\ soft_delete() @@ -2903,9 +2895,7 @@ def block_device_mapping_destroy_by_instance_and_volume(context, instance_uuid, @require_context def block_device_mapping_destroy_by_instance_and_device(context, instance_uuid, device_name): - session = get_session() - with session.begin(): - _block_device_mapping_get_query(context, session=session).\ + _block_device_mapping_get_query(context).\ filter_by(instance_uuid=instance_uuid).\ filter_by(device_name=device_name).\ soft_delete() |