Skip to content

Commit 6902e73

Browse files
feat(redis/idempotency): adding base class
1 parent b5c5791 commit 6902e73

File tree

6 files changed

+21
-10
lines changed

6 files changed

+21
-10
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from aws_lambda_powertools.utilities.connections.redis import (
2+
RedisCluster,
3+
RedisStandalone,
4+
)
5+
6+
__all__ = (RedisStandalone, RedisCluster)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from abc import ABC, abstractmethod
2+
3+
4+
class BaseConnectionSync(ABC):
5+
@abstractmethod
6+
def init_connection(self):
7+
raise NotImplementedError() # pragma: no cover

aws_lambda_powertools/utilities/database/redis.py renamed to aws_lambda_powertools/utilities/connections/redis.py

+7-6
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@
33

44
import redis
55

6-
from aws_lambda_powertools.utilities.database.exceptions import RedisConnectionError
6+
from .base_sync import BaseConnectionSync
7+
from .exceptions import RedisConnectionError
78

89
logger = logging.getLogger(__name__)
910

1011

11-
class RedisStandalone:
12+
class RedisStandalone(BaseConnectionSync):
1213
def __init__(
1314
self,
1415
host: Optional[str] = None,
@@ -30,7 +31,7 @@ def __init__(
3031
Name of the username to connect to Redis instance/cluster in case of using ACL
3132
See: https://redis.io/docs/management/security/acl/
3233
password: str
33-
Password to connect to Redis instance/cluster
34+
Passwod to connect to Redis instance/cluster
3435
db_index: int
3536
Index of Redis database
3637
See: https://redis.io/commands/select/
@@ -47,7 +48,7 @@ def __init__(
4748
self.db_index = db_index
4849
self._connection = None
4950

50-
def get_redis_connection(self):
51+
def init_connection(self):
5152
"""
5253
Connection is cached, so returning this
5354
"""
@@ -72,7 +73,7 @@ def get_redis_connection(self):
7273
return self._connection
7374

7475

75-
class RedisCluster:
76+
class RedisCluster(BaseConnectionSync):
7677
def __init__(
7778
self,
7879
host: Optional[str] = None,
@@ -107,7 +108,7 @@ def __init__(
107108
self.read_from_replicas = read_from_replicas
108109
self._connection = None
109110

110-
def get_redis_connection(self):
111+
def init_connection(self):
111112
"""
112113
Connection is cached, so returning this
113114
"""

aws_lambda_powertools/utilities/database/__init__.py

-3
This file was deleted.

aws_lambda_powertools/utilities/idempotency/persistence/redis.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def __init__(
4141
"""
4242

4343
# Initialize connection with Redis
44-
self._connection = connection._init_connection()
44+
self._connection = connection.init_connection()
4545

4646
if static_pk_value is None:
4747
static_pk_value = f"idempotency#{os.getenv(constants.LAMBDA_FUNCTION_NAME_ENV, '')}"

0 commit comments

Comments
 (0)