in Scripts/SmokeTests/run_sample_ci.py [0:0]
def setup_json_arguments_list(parsed_commands):
global config_json
global config_json_arguments_list
print("Attempting to get credentials from secrets using Boto3...", flush=True)
secrets_client = boto3.client("secretsmanager", region_name=config_json['sample_region'])
print ("Processing arguments...")
for argument in config_json['arguments']:
# Add the name of the argument
if 'name' in argument:
config_json_arguments_list.append(argument['name'])
# Based on the data present, we need to process and add the data differently
try:
# Is there a secret? If so, decode it!
if 'secret' in argument:
secret_data = secrets_client.get_secret_value(SecretId=argument['secret'])["SecretString"]
# Is this supposed to be stored in a file?
if 'filename' in argument:
with open(str(current_folder) + argument['filename'], "w") as file:
# lgtm [py/clear-text-storage-sensitive-data]
file.write(secret_data)
config_json_arguments_list.append(str(current_folder) + argument['filename'])
else:
config_json_arguments_list.append(secret_data)
if 'pkcs11_key' in argument:
pkcs11_result = make_softhsm_key(str(current_folder) + argument['filename'])
if (pkcs11_result != 0):
print ("ERROR with PKCS11!")
return pkcs11_result
# Windows 10 certificate store data?
elif 'windows_cert_certificate' in argument and 'windows_cert_certificate_path' in argument \
and 'windows_cert_key' in argument and 'windows_cert_key_path' in argument != None \
and 'windows_cert_pfx_key_path' in argument != None:
windows_cert_data = secrets_client.get_secret_value(SecretId=argument['windows_cert_certificate'])["SecretString"]
with open(str(current_folder) + argument['windows_cert_certificate_path'], "w") as file:
# lgtm [py/clear-text-storage-sensitive-data]
file.write(windows_cert_data)
windows_key_data = secrets_client.get_secret_value(SecretId=argument['windows_cert_key'])["SecretString"]
with open(str(current_folder) + argument['windows_cert_key_path'], "w") as file:
# lgtm [py/clear-text-storage-sensitive-data]
file.write(windows_key_data)
certificate_path = make_windows_pfx_file(
str(current_folder) + argument['windows_cert_certificate_path'],
str(current_folder) + argument['windows_cert_key_path'],
str(current_folder) + argument['windows_cert_pfx_key_path'])
config_json_arguments_list.append(certificate_path)
# Raw data? just add it directly!
elif 'data' in argument:
tmp_value = argument['data']
if isinstance(tmp_value, str) and 'input_uuid' in parsed_commands:
if ("$INPUT_UUID" in tmp_value):
tmp_value = tmp_value.replace("$INPUT_UUID", parsed_commands.input_uuid)
if (tmp_value != None and tmp_value != ""):
config_json_arguments_list.append(tmp_value)
# None of the above? Just print an error
else:
print ("ERROR - unknown or missing argument value!")
except Exception as e:
print (f"Something went wrong processing {argument['name']}!")
return -1
return 0