Skip to content

Commit 838e6a9

Browse files
committed
VED-26: Move Redis client into its own file to avoid the record forwarder Lambda from attempting to connect to Redis.
1 parent 793544d commit 838e6a9

File tree

8 files changed

+27
-26
lines changed

8 files changed

+27
-26
lines changed
Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
1-
"""Initialise s3, kinesis, lambda and redis clients"""
2-
31
from boto3 import client as boto3_client
42
import os
5-
import logging
6-
import redis
3+
74

85
REGION_NAME = os.getenv("AWS_REGION", "eu-west-2")
96

@@ -12,13 +9,3 @@
129
lambda_client = boto3_client("lambda", region_name=REGION_NAME)
1310
firehose_client = boto3_client("firehose", region_name=REGION_NAME)
1411
sqs_client = boto3_client("sqs", region_name=REGION_NAME)
15-
16-
REDIS_HOST = os.getenv("REDIS_HOST", "")
17-
REDIS_PORT = int(os.getenv("REDIS_PORT", 6379))
18-
19-
20-
logging.basicConfig(level="INFO")
21-
logger = logging.getLogger()
22-
logger.info(f"Connecting to Redis at {REDIS_HOST}:{REDIS_PORT}")
23-
24-
redis_client = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT, decode_responses=True)

backend/src/forwarding_batch_lambda.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import logging
88
from fhir_batch_repository import create_table
99
from fhir_batch_controller import ImmunizationBatchController, make_batch_controller
10-
from clients import sqs_client
10+
from aws_clients import sqs_client
1111
from models.errors import (
1212
MessageNotSuccessfulError,
1313
RecordProcessorError,

backend/src/models/utils/permissions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from clients import redis_client
1+
from redis_client import redis_client
22
import json
33

44
def get_supplier_permissions(supplier: str) -> list[str]:

backend/src/models/utils/validation_utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from models.errors import MandatoryError
1111
from constants import Urls
1212
from models.constants import Constants
13-
from clients import redis_client
13+
from redis_client import redis_client
1414

1515

1616
def get_target_disease_codes(immunization: dict):
@@ -54,7 +54,7 @@ def convert_disease_codes_to_vaccine_type(disease_codes_input: list) -> Union[st
5454
"""
5555
key = ":".join(sorted(disease_codes_input))
5656
vaccine_type = redis_client.hget(Constants.DISEASES_TO_VACCINE_TYPE_HASH_KEY, key)
57-
57+
5858
if not vaccine_type:
5959
raise ValueError(
6060
f"Validation errors: protocolApplied[0].targetDisease[*].coding[?(@.system=='http://snomed.info/sct')].code - "

backend/src/parameter_parser.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from typing import Optional
77
from urllib.parse import parse_qs, urlencode, quote
88

9-
from clients import redis_client
9+
from redis_client import redis_client
1010
from models.errors import ParameterException
1111
from models.constants import Constants
1212

backend/src/redis_client.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import logging
2+
import os
3+
4+
import redis
5+
6+
7+
REDIS_HOST = os.getenv("REDIS_HOST", "")
8+
REDIS_PORT = int(os.getenv("REDIS_PORT", 6379))
9+
10+
logging.basicConfig(level="INFO")
11+
logger = logging.getLogger()
12+
logger.info(f"Connecting to Redis at {REDIS_HOST}:{REDIS_PORT}")
13+
14+
redis_client = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT, decode_responses=True)

backend/tests/test_immunization_pre_validator.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from jsonpath_ng.ext import parse
99

10-
from clients import redis_client
10+
from redis_client import redis_client
1111
from models.fhir_immunization import ImmunizationValidator
1212
from models.utils.generic_utils import get_generic_extension_value
1313
from utils.generic_utils import (
@@ -36,9 +36,9 @@ def setUp(self):
3636
self.validator = ImmunizationValidator(add_post_validators=False)
3737
self.redis_patcher = patch("models.utils.validation_utils.redis_client")
3838
self.mock_redis_client = self.redis_patcher.start()
39-
40-
41-
39+
40+
41+
4242
def tearDown(self):
4343
patch.stopall()
4444

backend/tests/utils/test_permissions.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
import unittest
22
from unittest.mock import patch
3-
from src.models.utils.permissions import get_supplier_permissions
3+
from models.utils.permissions import get_supplier_permissions
44

55

66
class TestPermissions(unittest.TestCase):
77

8-
@patch("clients.redis_client.hget")
8+
@patch("redis_client.redis_client.hget")
99
def test_returns_list_if_permissions_exist(self, mock_hget):
1010
mock_hget.return_value = '["COVID19.CRUDS", "FLU.C"]'
1111
result = get_supplier_permissions("DPSFULL")
1212
self.assertEqual(result, ["COVID19.CRUDS", "FLU.C"])
1313

14-
@patch("clients.redis_client.hget")
14+
@patch("redis_client.redis_client.hget")
1515
def test_returns_empty_list_if_no_permissions(self, mock_hget):
1616
mock_hget.return_value = None
1717
result = get_supplier_permissions("UNKNOWN")

0 commit comments

Comments
 (0)