From: Neil Smith Date: Sun, 29 Jan 2017 13:56:50 +0000 (+0000) Subject: More error handling X-Git-Url: https://git.njae.me.uk/?a=commitdiff_plain;h=b327662ed5e003d5383f403b220172426dc64eb1;p=dmarc.git More error handling --- diff --git a/dmarc_to_database b/dmarc_to_database index 38ec028..fb5d458 100755 --- a/dmarc_to_database +++ b/dmarc_to_database @@ -151,24 +151,27 @@ def build_insert_command(table_name, report, preamble_values=None, i=None): def write_report(connection, cursor, report): - insert_string, values = build_insert_command('reports', report) - # print(insert_string, values) - cursor.execute(insert_string, values) - - for i in range(1, len(report.findall('./record'))+1): - field_names = [] - cursor.execute('select id, report_metadata_report_id from reports where report_metadata_report_id = %s;', - [report.find('./report_metadata/report_id').text]) - results = cursor.fetchall() - if len(results) != 1: - raise RuntimeError('Could not find report record for report item') - else: - report_id = results[0][0] - insert_string, values = build_insert_command('report_items', report, i=i, - preamble_values={'report_id': report_id}) + try: + insert_string, values = build_insert_command('reports', report) # print(insert_string, values) cursor.execute(insert_string, values) - connection.commit() + + for i in range(1, len(report.findall('./record'))+1): + field_names = [] + cursor.execute('select id, report_metadata_report_id from reports where report_metadata_report_id = %s;', + [report.find('./report_metadata/report_id').text]) + results = cursor.fetchall() + if len(results) != 1: + raise RuntimeError('Could not find report record for report item') + else: + report_id = results[0][0] + insert_string, values = build_insert_command('report_items', report, i=i, + preamble_values={'report_id': report_id}) + # print(insert_string, values) + cursor.execute(insert_string, values) + connection.commit() + except AttributeError: + pass config = configparser.ConfigParser() if args.config_file: