la suite, on prend en compte la table dump

darcs-hash:20051129214115-4ec08-9a25e3264ad9fc7097b6098bba7971563407e502.gz
This commit is contained in:
chove 2005-11-29 22:41:15 +01:00
parent ed0e9514b8
commit 133d5bc92d

View file

@ -65,26 +65,26 @@ ldap = crans_ldap()
# Vérification de l'upload et du download #
###########################################
requete = "SELECT ip_crans,round(sum(upload)/1024/1024) AS total FROM upload WHERE upload>download AND date>timestamp 'now' - interval '1 day' AND date<'now' AND NOT EXISTS ( SELECT 1 FROM exemptes WHERE upload.ip_crans<<=exemptes.ip_crans and upload.ip_ext<<=exemptes.ip_dest) GROUP BY ip_crans ORDER BY total desc"
requete_template = "SELECT ip_crans,round(sum(upload)/1024/1024) AS total FROM %(table)s WHERE upload>download AND date>timestamp 'now' - interval '1 day' AND date<'now' AND NOT EXISTS ( SELECT 1 FROM exemptes WHERE %(table)s.ip_crans<<=exemptes.ip_crans and %(table)s.ip_ext<<=exemptes.ip_dest) GROUP BY ip_crans ORDER BY total desc"
# table générale d'upload
requete = requete_template % {'table':'upload'}
curseur.execute(requete)
uploadeurs_general = curseur.fetchall()
# table temporaire d'upload
requete = requete_template % {'table':'dump'}
curseur.execute(requete)
uploadeurs_dump = curseur.fetchall()
requete = "SELECT ip_crans,round(sum(upload)/1024/1024) AS total FROM dump WHERE upload>download AND NOT EXISTS ( SELECT 1 FROM exemptes WHERE upload.ip_crans<<=exemptes.ip_crans and upload.ip_ext<<=exemptes.ip_dest) GROUP BY ip_crans ORDER BY total desc"
curseur.execute(requete)
uploadeurs_dump += curseur.fetchall()
uploadeurs_dump.sort()
#for i in range(0,len(uploadeurs_dump)-1):
# if uploadeurs_dump[i][0]==uploadeurs_dump[i+1][0]:
# uploadeurs_dump[i][1]=uploadeurs_dump[i][1]+uploadeurs_dump[i+1][1]
# uploadeurs_dump.pop(i+1)
requete = "SELECT round(sum(upload)/1024/1024) AS total,ip_crans FROM upload WHERE upload>download AND date>timestamp 'now' - interval '1 day' AND date<'now' AND NOT EXISTS ( SELECT 1 FROM exemptes WHERE upload.ip_crans<<=exemptes.ip_crans and upload.ip_ext<<=exemptes.ip_dest) GROUP BY ip_crans ORDER BY total desc"
curseur.execute(requete)
uploadeurs = curseur.fetchall()
# concaténation des résultats
uploadeurs = {}
for i in uploadeurs_general + uploadeurs_dump:
if i[0] in uploadeurs:
uploadeurs[i[0]]+=float(i[1])
else:
uploadeurs[i[0]]=float(i[1])
uploadeurs=uploadeurs.items()
# Table des avertis
###################
@ -102,7 +102,7 @@ avertiss = [ x[0] for x in curseur.fetchall() ]
# Vérification :
################
for elupload, IP in uploadeurs :
for IP, elupload in uploadeurs:
# On regarde si c'est de l'upload hard
if elupload >= upload.hard :
@ -114,7 +114,12 @@ for elupload, IP in uploadeurs :
# Objets LDAP
#############
machine = ldap.search('ipHostNumber=%s' % IP,'w')['machine'][0]
machine = ldap.search('ipHostNumber=%s' % IP,'w')['machine']
if not machine:
print 'IP non trouvée (%s)'%IP
continue
machine=machine[0]
hostname = machine.nom()
proprio = machine.proprietaire()
mid = machine.id()
@ -162,7 +167,12 @@ for elupload, IP in uploadeurs :
# On récupère les informations de LDAP
######################################
machine = ldap.search('ipHostNumber=%s' % IP )['machine'][0]
machine = ldap.search('ipHostNumber=%s' % IP,'w')['machine']
if not machine:
print 'IP non trouvée (%s)'%IP
continue
machine=machine[0]
hostname = machine.nom()
proprio = machine.proprietaire().mail()