From 75f72ac6c1e9d4b1f7a83aa9a8c1d8be9b0abd50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre-Elliott=20B=C3=A9cue?= Date: Sun, 17 Feb 2013 13:55:32 +0100 Subject: [PATCH] =?UTF-8?q?[Mac=5Fprises]=20boucler=20sur=20un=20tableau?= =?UTF-8?q?=20qu'on=20alt=C3=A8re=20est=20une=20mauvaise=20id=C3=A9e.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- surveillance/mac_prises/mac_prise_analyzer.py | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/surveillance/mac_prises/mac_prise_analyzer.py b/surveillance/mac_prises/mac_prise_analyzer.py index c70b7329..cd3a10ae 100755 --- a/surveillance/mac_prises/mac_prise_analyzer.py +++ b/surveillance/mac_prises/mac_prise_analyzer.py @@ -34,6 +34,10 @@ for club in clubs: conn = psycopg2.connect(user='crans', database='mac_prises') cur = conn.cursor(cursor_factory = psycopg2.extras.DictCursor) +requete = "SELECT * FROM signales WHERE date >= timestamp 'now' - interval '1 day';" +cur.execute(requete) +signales = cur.fetchall() + longueur = { 'mac': (24, 3), 'chambre': (10, 7), } @@ -82,14 +86,16 @@ def genere_comptage(duree, groupe, associes): # On retire les machines associées à l'adhérent possédant la chambre if groupe == 'chambre': - for i in liste_associes: + liste_temp = [] + liste_associes + for i in liste_temp: try: proprio_associe = ldap.search('macAddress=%s' % i)[0].proprio() if str(proprio_associe['chbre'][0]).lower() == entry[groupe]: liste_associes.remove(i) + Logs.append(u"La mac %s est associée à la chambre %s, la chambre consultée est %s." % (i, proprio_associe['chbre'][0], entry[groupe])) except: - pass - if len(liste_associes) < mac_prise.tres_suspect[duree][groupe]: + Logs.append(u"Exception pour %s, et %s" % (i, entry[groupe])) + if len(liste_associes) < mac_prise.tres_suspect[duree][groupe]-1: Logs.append(u"Entrée rejetée : la plupart des %s appartiennent au propriétaire de la %s\n\n" % (associes, groupe)) continue @@ -103,18 +109,21 @@ def genere_comptage(duree, groupe, associes): liste_associes = entry[associes+'s'].split(', ') if groupe == 'chambre': - for i in liste_associes: + liste_temp = [] + liste_associes + for i in liste_temp: + Logs.append(u'%s'%(i)) try: proprio_associe = ldap.search('macAddress=%s' % i)[0].proprio() if str(proprio_associe['chbre'][0]).lower() == entry[groupe]: liste_associes.remove(i) + Logs.append(u"La mac %s est associée à la chambre %s, la chambre consultée est %s." % (i, proprio_associe['chbre'][0], entry[groupe])) except: - pass - if len(liste_associes) < mac_prise.suspect[duree][groupe]: + Logs.append(u"Exception pour %s, et %s" % (i, entry[groupe])) + if len(liste_associes) < mac_prise.suspect[duree][groupe]-1: Logs.append(u"Entrée rejetée : la plupart des %s appartiennent au propriétaire de la %s\n\n" % (associes, groupe)) continue - # On calcul la "probabilité" qu'un truc ne soit pas clair concernant la chambre/mac + # On calcule la "probabilité" qu'un truc ne soit pas clair concernant la chambre/mac rapport = lin(entry['nb_'+associes+'s'], entry['nb_dates_distinctes'], float(entry['nb_'+associes+'s_distinctes'])) if rapport >= mac_prise.rapport_suspect[duree][groupe]: Logs.append(u"Entrée ajoutée au tableau %s pour la recherche par %s, car rapport supérieur au seuil.\n\n" % (duree, groupe))