in lambda/source/create_add_on_zip.py [0:0]
def fetchUserInputData(sourceBucketForParameterFiles,addOn_userInput_filename,addOnProductParameterCoreFile):
userInputObj=utils.getobj_from_s3(sourceBucketForParameterFiles, addOn_userInput_filename)
userInputContent=userInputObj['Body'].read()
# Read sample user-input file content
sampleUIFile=open(sample_userInput_file,'r')
sampleUIFileContent=sampleUIFile.read()
# Merge parameters file content into user-input file
p=re.compile("productParameters")
mergedFileContent = p.sub(userInputContent.decode('utf-8'), sampleUIFileContent)
# replace the product parameter file placeholder with actual product name
q=re.compile("parameters/core_accounts/productParameterFileName.json")
mergedFileContent = q.sub(addOnProductParameterCoreFile, mergedFileContent)
# Write locally
mergedFileBinaryContent=io.BytesIO(bytes(mergedFileContent,'utf-8'))
sampleUIFile.close()
file = open('/tmp/merged-user-input.yaml', 'w')
file.write(mergedFileContent)
file.close()
# Fix indentation
with open('/tmp/merged-user-input.yaml', 'r+') as text_file:
fileContent = text_file.readlines()
text_file.seek(0)
count = 0
for line in fileContent:
if count==3:
text_file.write(" "+line)
elif "parameters:" in line:
text_file.write(line)
count = count+1
else:
text_file.write(line)
text_file.truncate()
mergedFile=open('/tmp/merged-user-input.yaml','r')
mergedFileContent=mergedFile.read()
mergedFileContentBinary=io.BytesIO(bytes(mergedFileContent,'utf-8'))
mergedFile.close()
return (addOn_userInput_filename,mergedFileContentBinary)