11import csv
22import json
3+ import os
34import pathlib
5+ import re
46
57import boto3
68
79# from nhs_number import generate
810
9- # from scripts.are_resources_shared_for_stack import uses_shared_resources
1011
1112DYNAMODB = boto3 .resource ("dynamodb" , region_name = "eu-west-2" )
1213
14+ default_table_name = "default-table-name"
15+ # default_table_name = "nhsd-nrlf--xaxel-deleteme-pointers-table"
1316
14- def get_pointers_table_name (stack_name ):
15- # if uses_shared_resources(stack_name):
16- # env = stack_name.split("-")[0]
17- # return f"nhsd-nrlf--{env}-pointers-table"
18- # else:
19- # return f"nhsd-nrlf--{stack_name}-pointers-table"
20- # return f"nhsd-nrlf--perftest-pointers-table"
21- return f"nhsd-nrlf--xaxel-deleteme-pointers-table"
2217
18+ def _get_pointers_table_name ():
19+ perftest_table_name = os .environ .get ("PERFTEST_TABLE_NAME" , default_table_name )
2320
24- def extract_consumer_data (stack_name , out = "consumer_reference_data.json" ):
25- table_name = get_pointers_table_name (stack_name )
21+ if re .search ("^nhsd-nrlf--.+-pointers-table$" , perftest_table_name ):
22+ return perftest_table_name
23+
24+ return f"nhsd-nrlf--{ perftest_table_name } -pointers-table"
25+
26+
27+ def extract_consumer_data (out = "consumer_reference_data.json" ):
28+ table_name = _get_pointers_table_name ()
2629 table = DYNAMODB .Table (table_name )
2730 scan_kwargs = {}
2831 done = False
@@ -84,7 +87,6 @@ def __next__(self):
8487
8588
8689def generate_producer_data (
87- stack_name ,
8890 proportion_existing = 0.8 , # Proportion of output that should be existing NHS numbers
8991 total_count = 1000 , # Total number of NHS numbers to output
9092 out = "producer_reference_data.json" ,
@@ -96,7 +98,7 @@ def generate_producer_data(
9698 - total_count: total number of NHS numbers in output
9799 NHS numbers are generated in a semi-deterministic way, similar to the NFT seeding script.
98100 """
99- table_name = get_pointers_table_name ( stack_name )
101+ table_name = _get_pointers_table_name ( )
100102 table = DYNAMODB .Table (table_name )
101103 scan_kwargs = {}
102104 done = False
@@ -176,13 +178,12 @@ def __next__(self):
176178
177179
178180def generate_pointer_table_extract (
179- stack_name ,
180181 out = "producer_reference_data.csv" ,
181182):
182183 """
183184 Generate a CSV file containing all pointer IDs, pointer type, custodian, and nhs_number (patient).
184185 """
185- table_name = get_pointers_table_name ( stack_name )
186+ table_name = _get_pointers_table_name ( )
186187 table = DYNAMODB .Table (table_name )
187188 scan_kwargs = {}
188189 done = False
@@ -197,6 +198,7 @@ def generate_pointer_table_extract(
197198 ["count" , "pointer_id" , "pointer_type" , "custodian" , "nhs_number" ]
198199 )
199200 while not done :
201+
200202 if start_key :
201203 scan_kwargs ["ExclusiveStartKey" ] = start_key
202204 response = table .scan (** scan_kwargs )
0 commit comments