Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions glance_store/multi_backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
Loading