'First check agaist our local in-process cache, falling
back to the network cache.'

def get_cache(self, key, silent=False):

    value = self.get_local_cache(key)
    if (value is not None):
        return value
    if (self.cache is None):
        return None
    cache_key = key.cache_key
    try:
        value = self.cache.get(cache_key)
    except Exception:
        if (not silent):
            logger.warn(CACHE_FETCH_ERR, key.name, exc_info=True)
        value = None
    if ((value is not None) and (key.ttl > 0)):
        self._local_cache[cache_key] = _make_cache_value(key, value)
    return value
