Exemple #1
0
 def get(self, key):
     value = self._cache.get(key, NO_VALUE)
     if value == NO_VALUE:
         value = super().get(sha1_mangle_key(key.encode()))
     if value != NO_VALUE and self._use_memory_cache:
         self._cache[key] = value
     return value
Exemple #2
0
 def get(self, key: str) -> SerializedReturnType:
     value = self._memory.get(key)
     if value == NO_VALUE:
         val = self._redis.get_serialized(sha1_mangle_key(key.encode()))
         if val in (None, NO_VALUE):
             return NO_VALUE
         value = self._redis.deserializer(val)
         if value != NO_VALUE and self._use_memory_cache:
             self._memory.set(key, value)
     return value
def _sha1_mangle_key(key):
    """Wrapper for dogpile's sha1_mangle_key.

    dogpile's sha1_mangle_key function expects an encoded string, so we
    should take steps to properly handle multiple inputs before passing
    the key through.
    """
    try:
        key = key.encode('utf-8', errors='xmlcharrefreplace')
    except (UnicodeError, AttributeError):
        # NOTE(stevemar): if encoding fails just continue anyway.
        pass
    return util.sha1_mangle_key(key)
Exemple #4
0
def _sha1_mangle_key(key):
    """Wrapper for dogpile's sha1_mangle_key.

    dogpile's sha1_mangle_key function expects an encoded string, so we
    should take steps to properly handle multiple inputs before passing
    the key through.
    """
    try:
        key = key.encode('utf-8', errors='xmlcharrefreplace')
    except (UnicodeError, AttributeError):
        # NOTE(stevemar): if encoding fails just continue anyway.
        pass
    return util.sha1_mangle_key(key)
Exemple #5
0
def sha1_mangle_key(key):
    """Wrapper for dogpile's sha1_mangle_key.

    Taken from oslo_cache.core._sha1_mangle_key

    dogpile's sha1_mangle_key function expects an encoded string, so we
    should take steps to properly handle multiple inputs before passing
    the key through.
    """
    try:
        key = key.encode("utf-8", errors="xmlcharrefreplace")
    except (UnicodeError, AttributeError):  # nosec
        # NOTE(stevemar): if encoding fails just continue anyway.
        pass
    return dogpile_util.sha1_mangle_key(key)
Exemple #6
0
def _sha1_mangle_key(key):
    """Wrapper for dogpile's sha1_mangle_key.

    dogpile's sha1_mangle_key function expects an encoded string, so we
    should take steps to properly handle multiple inputs before passing
    the key through.

    NOTE(dstanek): this was copied directly from olso_cache
    """
    try:
        key = key.encode("utf-8", errors="xmlcharrefreplace")
    except (UnicodeError, AttributeError):
        # NOTE(stevemar): if encoding fails just continue anyway.
        pass
    return util.sha1_mangle_key(key)
Exemple #7
0
    def test_sha1_key_mangler(self):

        decorate, canary = self._keygen_decorator()

        @decorate
        def one(a, b):
            pass

        gen = canary[0]

        key = gen(1, 2)

        eq_(
            util.sha1_mangle_key(key),
            "aead490a8ace2d69a00160f1fd8fd8a16552c24f",
        )
Exemple #8
0
def universal_key_mangler(key):
    return sha1_mangle_key(flatten(key).encode())
Exemple #9
0
 def set(self, key: str, value: SerializedReturnType) -> None:
     if self._use_memory_cache:
         self._memory.set(key, value)
     self._redis.set_serialized(sha1_mangle_key(key.encode()),
                                self._redis.serializer(value))
Exemple #10
0
 def test_sha1_key_mangler_bytes_py3k(self):
     eq_(
         util.sha1_mangle_key(b"some_key"),
         "53def077a4264bd3183d4eb21b1f56f883e1b572",
     )
Exemple #11
0
 def test_sha1_key_mangler_unicode_py2k(self):
     eq_(
         util.sha1_mangle_key("some_key"),
         "53def077a4264bd3183d4eb21b1f56f883e1b572",
     )
Exemple #12
0
 def set(self, key, value):
     if self._use_memory_cache:
         self._cache[key] = value
     super().set(sha1_mangle_key(key.encode()), value)