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