def find_ec2()

in lambdas/helper/dal.py [0:0]


    def find_ec2(self, aws_instance_id):
        DataAccessLayer._xray_start('find_ec2')
        try:
            DataAccessLayer._xray_add_metadata('aws_instance_id', aws_instance_id)
            sql_parameters = [
                {'name':'aws_instance_id', 'value':{'stringValue': aws_instance_id}}
            ]
            sql = f'select aws_instance_id, aws_region, aws_account' \
                  f' from {ec2_table_name}' \
                  f' where aws_instance_id=:aws_instance_id'
            response = self.execute_statement(sql, sql_parameters)
            record = dict()
            returned_records = response['records']
            if len(returned_records) > 0:
                record['instance_id'] = returned_records[0][0]['stringValue']
                record['aws_region'] = returned_records[0][1]['stringValue']
                record['aws_account'] = returned_records[0][2]['stringValue']
                # find ec2-package relations and add packages to returned ec2 object
                ec2_package_relations = self._find_ec2_package_relations(aws_instance_id)
                record['packages'] = [ {'package_name': package['package_name'], 'package_version': package['package_version']} for package in ec2_package_relations]
            return record
        except DataAccessLayerException as de:
            raise de
        except Exception as e:
            raise DataAccessLayerException(e) from e
        finally:
           DataAccessLayer._xray_stop()