[chambres_vides] On envoie le mail un peu plus proprement

Ignore-this: 7db733c3d54d00b432b875a29c5128f0

darcs-hash:20120920012717-2c9c1-e67265e341e5579711210a3df5bdc3327ceff0c0.gz
This commit is contained in:
Vincent Le Gallic 2012-09-20 03:27:17 +02:00
parent ebaa08969a
commit 46e9dab74a

View file

@ -9,19 +9,23 @@ import re
import ldap_crans import ldap_crans
conn = ldap_crans.CransLdap() conn = ldap_crans.CransLdap()
year = 2012 #owi les dates hardcodées, c'est cool ! import sys
delai = 8 # jours avant d'être considéré déserteur import os
import config
year = config.ann_scol
delai = 0 # jours avant d'être considéré déserteur
# On récupère ceux qui n'ont pas payé cette année # On récupère ceux qui n'ont pas payé cette année
bad_boys_e_s = conn.search('chbre=????&paiement=%d&paiement!=%d' % (year-1,year))['adherent'] bad_boys_e_s = conn.search('chbre=????&paiement=%d&paiement!=%d' % (year-1,year))['adherent']
timeout = time.time() - 3600*24*delai timeout = time.time() - 3600*24*delai
template = u"| %4s | %-15s | %4s | %-38s |"
header_printed = False header_printed = False
to_print = []
for clandestin in bad_boys_e_s: for clandestin in bad_boys_e_s:
# Look for last kickout # On cherche la dernière fois qu'il s'est retrouvé en chambre ????
for l in clandestin.historique(): for l in clandestin.historique():
# On récupère la date du dernier changement de chambre # On récupère la date du dernier changement de chambre
# (l'historique est enregistré par ordre chronologique) # (l'historique est enregistré par ordre chronologique)
@ -37,18 +41,29 @@ for clandestin in bad_boys_e_s:
# On n'a pas envie d'essayer de supprimer une machine qui a une blackliste # On n'a pas envie d'essayer de supprimer une machine qui a une blackliste
if len(m.blacklist_actif()) > 0: if len(m.blacklist_actif()) > 0:
continue continue
# random formatage de chaîne de caractère to_print.append( (clandestin.id(), m.ip(), m.id(), m.nom()) )
# GRUIK ##m2 = conn.search('mid=%s' % m.id(),mode='w')['machine'][0]
if not header_printed: ##m2.delete('Adherent sans chambre valide depuis %d jours' % delai)
print "\nListe des machines supprimée pour chambre invalide depuis plus de %s jours :\n" % delai
print "+------+-------------------+------+-----------------------------------------+"
print template % ("aid", " ip", "mid", " hostname")
print "+------+-------------------+------+-----------------------------------------+"
header_printed = True
print(template % (clandestin.id(), m.ip(), m.id(), m.nom()))
m2 = conn.search('mid=%s' % m.id(),mode='w')['machine'][0]
m2.delete('Adherent sans chambre valide depuis %d jours' % delai)
if header_printed: if to_print != []:
print "+------+-------------------+------+-----------------------------------------+" # Il s'est passé quelque chose, donc on envoie un mail
# On regarde le plus grand hostname
hostnamemaxsize = max([len(i[3]) for i in to_print])
template = u"| %%4s | %%-15s | %%4s | %%-%ss |\n" % (hostnamemaxsize)
message = u""
message += u"\nListe des machines supprimée pour chambre invalide depuis plus de %s jours :\n" % delai
tiret_line = u"+------+-----------------+------+-%s-+\n" % ("-" * hostnamemaxsize)
message += tiret_line
message += template % ("aid", " ip", "mid", (" " * (max((hostnamemaxsize-8)/2,0)) + "hostname"))
message += tiret_line
for aid, ip, mid, hostname in to_print:
message += template % (aid, ip, mid, hostname)
message += tiret_line
headers = u"From: respbats@crans.org\nSubject: Machines supprimées pour chambre invalide\n"
headers += u"Content-Type: text/plain; charset=UTF-8\n"
headers += u"To: respbats@crans.org\n"
mail = headers + "\n" + message
mailer = os.popen("/usr/sbin/sendmail -t", "w")
mailer.write(mail.encode("utf-8") + "\n.")
mailer.close()