Merge "Fix performance glitch while sorting image locations"
This commit is contained in:
commit
b9e979236c
@ -720,13 +720,12 @@ def sort_image_locations(locations):
|
||||
if not store_id:
|
||||
return 0
|
||||
try:
|
||||
store = glance_store.get_store_from_store_identifier(store_id)
|
||||
return glance_store.get_store_weight(store_id)
|
||||
except glance_store.exceptions.UnknownScheme:
|
||||
msg = (_LW("Unable to find store '%s', returning "
|
||||
"default weight '0'") % store_id)
|
||||
LOG.warning(msg)
|
||||
return 0
|
||||
return store.weight if store is not None else 0
|
||||
|
||||
sorted_locations = sorted(locations, key=get_store_weight, reverse=True)
|
||||
LOG.debug(('Sorted locations: %s'), sorted_locations)
|
||||
|
@ -192,7 +192,7 @@ class TestUtils(test_utils.BaseTestCase):
|
||||
'url': 'rbd://cccccccc/images/id',
|
||||
'metadata': {'store': 'rbd3'}
|
||||
}]
|
||||
mp = "glance.common.utils.glance_store.get_store_from_store_identifier"
|
||||
mp = "glance.common.utils.glance_store.get_store_weight"
|
||||
with mock.patch(mp) as mock_get_store:
|
||||
utils.sort_image_locations(locations)
|
||||
|
||||
@ -218,10 +218,9 @@ class TestUtils(test_utils.BaseTestCase):
|
||||
'url': 'rbd://cccccccc/images/id',
|
||||
'metadata': {'store': 'rbd3'}
|
||||
}]
|
||||
mp = "glance.common.utils.glance_store.get_store_from_store_identifier"
|
||||
mp = "glance.common.utils.glance_store.get_store_weight"
|
||||
with mock.patch(mp) as mock_get_store:
|
||||
mock_store = mock_get_store.return_value
|
||||
mock_store.weight = 100
|
||||
mock_get_store.return_value = 100
|
||||
utils.sort_image_locations(locations)
|
||||
|
||||
# Since 3 stores are configured, internal method will be called 3 times
|
||||
@ -246,7 +245,7 @@ class TestUtils(test_utils.BaseTestCase):
|
||||
'url': 'rbd://cccccccc/images/id',
|
||||
'metadata': {}
|
||||
}]
|
||||
mp = "glance.common.utils.glance_store.get_store_from_store_identifier"
|
||||
mp = "glance.common.utils.glance_store.get_store_weight"
|
||||
with mock.patch(mp) as mock_get_store:
|
||||
utils.sort_image_locations(locations)
|
||||
|
||||
@ -273,10 +272,9 @@ class TestUtils(test_utils.BaseTestCase):
|
||||
'url': 'rbd://cccccccc/images/id',
|
||||
'metadata': {}
|
||||
}]
|
||||
mp = "glance.common.utils.glance_store.get_store_from_store_identifier"
|
||||
mp = "glance.common.utils.glance_store.get_store_weight"
|
||||
with mock.patch(mp) as mock_get_store:
|
||||
mock_store = mock_get_store.return_value
|
||||
mock_store.weight = 100
|
||||
mock_get_store.return_value = 100
|
||||
utils.sort_image_locations(locations)
|
||||
|
||||
# Since 3 stores are configured, but only one location has
|
||||
@ -303,7 +301,7 @@ class TestUtils(test_utils.BaseTestCase):
|
||||
'url': 'rbd://cccccccc/images/id',
|
||||
'metadata': {'store': 'rbd3'}
|
||||
}]
|
||||
mp = "glance.common.utils.glance_store.get_store_from_store_identifier"
|
||||
mp = "glance.common.utils.glance_store.get_store_weight"
|
||||
with mock.patch(mp) as mock_get_store:
|
||||
mock_get_store.side_effect = store.UnknownScheme()
|
||||
sorted_locations = utils.sort_image_locations(locations)
|
||||
|
Loading…
Reference in New Issue
Block a user