in lambdas/helper/dal.py [0:0]
def save_ec2(self, aws_instance_id, input_fields, batch_size=200):
DataAccessLayer._xray_start('save_ec2')
try:
num_ec2_packages = len(input_fields['packages']) if 'packages' in input_fields else 0
DataAccessLayer._xray_add_metadata('aws_instance_id', aws_instance_id)
DataAccessLayer._xray_add_metadata('num_ec2_packages', num_ec2_packages)
# packages have their own table, so remove it to construct the ec2 record
ec2_fields = input_fields.copy()
ec2_fields.pop('packages')
sql_parameters = [
{'name':'aws_instance_id', 'value':{'stringValue': aws_instance_id}},
{'name':'aws_region', 'value':{'stringValue': ec2_fields['aws_region']}},
{'name':'aws_account', 'value':{'stringValue': ec2_fields['aws_account']}},
]
sql = f'insert into {ec2_table_name}' \
f' (aws_instance_id, aws_region, aws_account)' \
f' values (:aws_instance_id, :aws_region, :aws_account)'
response = self.execute_statement(sql, sql_parameters)
if 'packages' in input_fields:
self._save_packages_batch(input_fields['packages'], batch_size)
self._save_ec2_package_relations_batch(aws_instance_id, input_fields['packages'], batch_size)
return response
except DataAccessLayerException as de:
raise de
except Exception as e:
raise DataAccessLayerException(e) from e
finally:
DataAccessLayer._xray_stop()