fix Redis Sentinel authentication handling

This commit is contained in:
Kristin Cowalcijk 2026-04-13 02:03:49 +08:00
parent 5e80e075c7
commit afc65f2b42
No known key found for this signature in database
GPG key ID: DB0876501620F27A

View file

@ -307,6 +307,10 @@ def _init_redis_sentinel(redis_kwargs) -> redis.Redis:
sentinel_nodes = redis_kwargs.get("sentinel_nodes")
sentinel_password = redis_kwargs.get("sentinel_password")
service_name = redis_kwargs.get("service_name")
master_kwargs = {}
if redis_kwargs.get("password") is not None:
master_kwargs["password"] = redis_kwargs.get("password")
if not sentinel_nodes or not service_name:
raise ValueError(
@ -319,18 +323,24 @@ def _init_redis_sentinel(redis_kwargs) -> redis.Redis:
sentinel = redis.Sentinel(
sentinel_nodes,
socket_timeout=REDIS_SOCKET_TIMEOUT,
password=sentinel_password,
sentinel_kwargs={"password": sentinel_password}
if sentinel_password is not None
else None,
)
# Return the master instance for the given service
return sentinel.master_for(service_name)
return sentinel.master_for(service_name, **master_kwargs)
def _init_async_redis_sentinel(redis_kwargs) -> async_redis.Redis:
sentinel_nodes = redis_kwargs.get("sentinel_nodes")
sentinel_password = redis_kwargs.get("sentinel_password")
service_name = redis_kwargs.get("service_name")
master_kwargs = {}
if redis_kwargs.get("password") is not None:
master_kwargs["password"] = redis_kwargs.get("password")
if not sentinel_nodes or not service_name:
raise ValueError(
@ -343,12 +353,14 @@ def _init_async_redis_sentinel(redis_kwargs) -> async_redis.Redis:
sentinel = async_redis.Sentinel(
sentinel_nodes,
socket_timeout=REDIS_SOCKET_TIMEOUT,
password=sentinel_password,
sentinel_kwargs={"password": sentinel_password}
if sentinel_password is not None
else None,
)
# Return the master instance for the given service
return sentinel.master_for(service_name)
return sentinel.master_for(service_name, **master_kwargs)
def get_redis_client(**env_overrides):