Merge "Add interface to get store weight from memory"

This commit is contained in:
Zuul 2024-12-12 15:38:25 +00:00 committed by Gerrit Code Review
commit 5a3352c6ff

View File

@ -331,6 +331,34 @@ def verify_store():
raise RuntimeError(msg)
def get_store_weight(store_identifier):
"""Determine backing store weightage from identifier.
Given a store identifier, return the appropriate weight of store
from memory.
"""
enabled_backends = CONF.enabled_backends
enabled_backends.update(_RESERVED_STORES)
try:
scheme = enabled_backends[store_identifier]
except KeyError:
msg = _("Store for identifier %s not found") % store_identifier
raise exceptions.UnknownScheme(msg)
try:
backend_map = location.SCHEME_TO_CLS_BACKEND_MAP[scheme]
scheme_info = backend_map[store_identifier]
except KeyError:
raise exceptions.UnknownScheme(scheme=scheme)
store = scheme_info['store']
if store:
return store.weight
return 0
def get_store_from_store_identifier(store_identifier):
"""Determine backing store from identifier.