forked from conorcolgan/quickstart-aws-biotech-blueprint-cdk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSynthQuickstartTemplate.py
executable file
·72 lines (46 loc) · 3.02 KB
/
SynthQuickstartTemplate.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import os
import yaml
folders = []
files = []
for entry in os.scandir('./lambda_functions/source/'):
if entry.is_dir():
if "asset." not in entry.path:
print("WARN: Skipping path...")
else:
folders.append(entry.path)
templateStream = open('./templates/AwsBiotechBlueprint.template.yml', 'r')
templateData = yaml.safe_load(templateStream)
taskcatConfigStream = open('./.taskcat.yml', 'r')
taskcatConfig = yaml.safe_load(taskcatConfigStream)
for assetFolder in folders:
assetFolderComponents = assetFolder.split('asset.')
assetId = assetFolderComponents[1]
for parameter in templateData['Parameters']:
if assetId in parameter:
if 'S3Bucket' in parameter:
templateData['Parameters'][parameter]['Default'] = "aws-quickstart"
taskcatConfig['tests']['default']['parameters'][parameter] = '$[taskcat_autobucket]'
templateData['Conditions'][f'UsingDefaultQuickstartBucket{assetId}'] = {
"Fn::Equals" : [{"Ref" : parameter}, "aws-quickstart"]
}
if 'VersionKey' in parameter:
templateData['Parameters'][parameter]['Default'] = f"quickstart-aws-biotech-blueprint-cdk/lambda_functions/packages/asset{assetId}/||lambda.zip"
taskcatConfig['tests']['default']['parameters'][parameter] = f"quickstart-aws-biotech-blueprint-cdk/lambda_functions/packages/asset{assetId}/||lambda.zip"
if 'ArtifactHash' in parameter:
templateData['Parameters'][parameter]['Default'] = assetId
taskcatConfig['tests']['default']['parameters'][parameter] = assetId
for resource in templateData['Resources']:
resourceType = templateData['Resources'][resource]['Type']
if resourceType == 'AWS::Lambda::Function':
if "S3Bucket" in templateData['Resources'][resource]['Properties']['Code']:
print(templateData['Resources'][resource]['Properties']['Code']['S3Bucket'])
if assetId in templateData['Resources'][resource]['Properties']['Code']['S3Bucket']['Ref']:
bucketParamName = templateData['Resources'][resource]['Properties']['Code']['S3Bucket']['Ref']
templateData['Resources'][resource]['Properties']['Code']['S3Bucket'] = {
"Fn::If": [f'UsingDefaultQuickstartBucket{assetId}', { "Fn::Join" : ['-', [ {"Ref": bucketParamName} , {"Ref": 'AWS::Region'} ] ] } , {"Ref": bucketParamName}]
}
os.replace(assetFolder, f"./lambda_functions/source/asset{assetId}")
with open('./templates/AwsBiotechBlueprint.template.quickstart.yml', 'w') as yaml_file:
yaml_file.write( yaml.dump(templateData, default_flow_style=False))
with open('./.taskcat.yml', 'w') as yaml_file:
yaml_file.write( yaml.dump(taskcatConfig, default_flow_style=False))