Merge "Replace N block_device_mapping queries with 1"

This commit is contained in:
Jenkins 2015-11-13 13:30:29 +00:00 committed by Gerrit Code Review
commit 5780edbcb3
2 changed files with 20 additions and 0 deletions

View File

@ -1197,6 +1197,14 @@ def block_device_mapping_update_or_create(context, values, legacy=True):
return IMPL.block_device_mapping_update_or_create(context, values, legacy)
def block_device_mapping_get_all_by_instance_uuids(context, instance_uuids,
use_slave=False):
"""Get all block device mapping belonging to a list of instances."""
return IMPL.block_device_mapping_get_all_by_instance_uuids(context,
instance_uuids,
use_slave)
def block_device_mapping_get_all_by_instance(context, instance_uuid,
use_slave=False):
"""Get all block device mapping belonging to an instance."""

View File

@ -3964,6 +3964,18 @@ def block_device_mapping_update_or_create(context, values, legacy=True):
return result
@require_context
def block_device_mapping_get_all_by_instance_uuids(context, instance_uuids,
use_slave=False):
if not instance_uuids:
return []
return _block_device_mapping_get_query(
context, use_slave=use_slave
).filter(
models.BlockDeviceMapping.instance_uuid.in_(instance_uuids)
).all()
@require_context
def block_device_mapping_get_all_by_instance(context, instance_uuid,
use_slave=False):