diff --git a/surveillance/deconnexion2.py b/surveillance/deconnexion2.py index d766733c..a50e1b21 100755 --- a/surveillance/deconnexion2.py +++ b/surveillance/deconnexion2.py @@ -440,9 +440,14 @@ def main(curseur, ldap): # On crée un stream qui sera ensuite utilisé par PostgreSQL stream = cStringIO.StringIO("\n".join(["%s\t%s\t%s\t%s" % (key[0], key[1], value, CUR_DATE) for (key, value) in accounted.iteritems()])) - # On met à jour accounting. - curseur.execute("TRUNCATE accounting;") - curseur.copy_from(stream, "accounting") + # On met à jour accounting, en utilisant une nouvelle + # connexion, qui effectue le truncate/copy dans la même + # transaction. + conn = psycopg2.connect(database='filtrage', user='crans') + curs = conn.cursor(cursor_factory=psycopg2.extras.DictCursor) + curs.execute("TRUNCATE accounting;") + curs.copy_from(stream, "accounting") + conn.commit() # Check and blacklist check_and_blacklist(accounted, curseur, ldap)