Skip to content
Snippets Groups Projects

Remove truncate and add on conflict clause instead

Compare and Show latest version
1 file
+ 5
1
Compare changes
  • Side-by-side
  • Inline
+ 5
1
@@ -104,6 +104,7 @@ def main():
to_add = new_auth_set.difference(auth_nids)
to_delete = auth_nids.difference(new_auth_set)
to_revoke = set_authorizer_nodes(auth_conn, to_add, to_delete)
log.info(f"To revoke: {to_revoke}")
auth_nids = new_auth_set
revoke_auth(to_revoke)
@@ -711,11 +712,13 @@ def set_authorizer_nodes(conn, to_add, to_delete):
delete_command = "DELETE FROM nodes WHERE id = %s;"
for row in node_list:
if bytes(row[0]) in to_delete:
log.info(f"Deleting {bytes(row[0])} [{row[1]}] - last updated in DB at {row[2]}")
try:
cur.execute(delete_command, (row[0],))
log.debug(cur.query)
except Exception as e:
log.error(f"Failed to remove node from authorizer DB: {cur.query}")
cur.close()
raise e
if row[1]:
to_revoke.append(row[1])
@@ -724,13 +727,14 @@ def set_authorizer_nodes(conn, to_add, to_delete):
insert_list = [(i, None, None) for i in to_add]
# Insert Node information into authorizer db
insert_command = "INSERT INTO nodes (id, ip_address, last_updated) VALUES" + \
(' (%s, %s, %s),' * len(insert_list))
(' (%s, %s, %s),' * len(insert_list))
insert_command = insert_command[:-1] + " ON CONFLICT DO NOTHING;"
try:
cur.execute(insert_command, [e for l in insert_list for e in l])
log.debug(cur.query)
except Exception as e:
log.error(f"Failed to insert into authorizer db: {cur.query}")
cur.close()
raise e
conn.commit()
Loading