1
0
mirror of https://github.com/quay/quay.git synced 2026-01-27 18:42:52 +03:00
Files
quay/data/cache/__init__.py
2020-02-05 19:55:07 -08:00

27 lines
918 B
Python

from data.cache.impl import NoopDataModelCache, InMemoryDataModelCache, MemcachedModelCache
def get_model_cache(config):
"""
Returns a data model cache matching the given configuration.
"""
cache_config = config.get("DATA_MODEL_CACHE_CONFIG", {})
engine = cache_config.get("engine", "noop")
if engine == "noop":
return NoopDataModelCache()
if engine == "inmemory":
return InMemoryDataModelCache()
if engine == "memcached":
endpoint = cache_config.get("endpoint", None)
if endpoint is None:
raise Exception("Missing `endpoint` for memcached model cache configuration")
timeout = cache_config.get("timeout")
connect_timeout = cache_config.get("connect_timeout")
return MemcachedModelCache(endpoint, timeout=timeout, connect_timeout=connect_timeout)
raise Exception("Unknown model cache engine `%s`" % engine)