summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBoris Pavlovic <boris@pavlovic.me>2013-03-12 11:10:54 +0400
committerBoris Pavlovic <boris@pavlovic.me>2013-03-13 00:22:21 +0400
commit32ceb7ae28ef85e93669273bd04689c96228c564 (patch)
tree3dd96cd21334917a7c5a67179df67d2b5cddac7a
parent27b4c62b69464ce1211e91dbc61643ae47798ccd (diff)
downloadnova-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.py32
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()