From 3ecf72fbecf4d3a8bc25de857f12842a0161710d Mon Sep 17 00:00:00 2001 From: Olivier Iffrig Date: Wed, 28 Nov 2012 09:14:25 +0100 Subject: [PATCH] =?UTF-8?q?[deconnexion,=20ldap=5Fcrans]=20On=20ne=20crash?= =?UTF-8?q?e=20pas=20au=20moment=20de=20d=C3=A9connecter=20un=20proprio=20?= =?UTF-8?q?virtuel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ignore-this: 18ea66e81e966ddc84fa67353e40f6ce Le script de déconnexion crashe au moment de save() une instance de AssociationCrans par exemple... On se content d'afficher le problème (c'est cron qui l'exécute, donc ça sera envoyé par mail). darcs-hash:20121128081425-108b1-257442176bca6479caee7628c6c9871a5977d221.gz --- gestion/ldap_crans.py | 1 + surveillance/deconnexion.py | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index 99264ae5..a4e06340 100644 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -3857,6 +3857,7 @@ class _FakeProprio(CransLdap): print >>sys.stderr, "Impossible de récupérer le nom..." print >>sys.stderr, "Blacklist :" print >>sys.stderr, new + raise ValueError("Impossible de blacklister %r" % str(self)) return [] def paiement(self): return [ ann_scol ] diff --git a/surveillance/deconnexion.py b/surveillance/deconnexion.py index 93fc40a7..714fd49c 100644 --- a/surveillance/deconnexion.py +++ b/surveillance/deconnexion.py @@ -351,14 +351,17 @@ for ip, nombre in infectes: # On récupère les index des lignes de bl où il y a marqué virus index = [ blacklist.index(x) for x in blacklist if 'autodisc_virus' in x ] - if index: - # L'adhérent est déjà blacklisté - proprio.blacklist((index[0], ['now', '-', 'autodisc_virus', hostname])) - proprio.save() - else: - # L'adhérent n'est pas encore blacklisté - proprio.blacklist(['now', '-', 'autodisc_virus', hostname]) - proprio.save() + try: + if index: + # L'adhérent est déjà blacklisté + proprio.blacklist((index[0], ['now', '-', 'autodisc_virus', hostname])) + proprio.save() + else: + # L'adhérent n'est pas encore blacklisté + proprio.blacklist(['now', '-', 'autodisc_virus', hostname]) + proprio.save() + except ValueError: # On a essayé de blacklister un proporiétaire virtuel + pass # Le message d'erreur a déjà été affiché (changer ça ?) # Reconnexion si le virus/flood a disparu