diff --git a/gestion/chambres_vides.py b/gestion/chambres_vides.py index ec4b2e6e..5f2630c7 100755 --- a/gestion/chambres_vides.py +++ b/gestion/chambres_vides.py @@ -9,19 +9,23 @@ import re import ldap_crans conn = ldap_crans.CransLdap() -year = 2012 #owi les dates hardcodées, c'est cool ! -delai = 8 # jours avant d'être considéré déserteur +import sys +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 bad_boys_e_s = conn.search('chbre=????&paiement=%d&paiement!=%d' % (year-1,year))['adherent'] timeout = time.time() - 3600*24*delai -template = u"| %4s | %-15s | %4s | %-38s |" header_printed = False +to_print = [] 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(): # On récupère la date du dernier changement de chambre # (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 if len(m.blacklist_actif()) > 0: continue - # random formatage de chaîne de caractère - # GRUIK - if not header_printed: - 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: - print "+------+-------------------+------+-----------------------------------------+" + to_print.append( (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 to_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() +