[gestion/chambres_vides.py] La chambre invalide est maintenant unee blacklist, donc on n'ignore pas les machines blacklistées.
This commit is contained in:
parent
a78a22eed5
commit
02acf7142e
1 changed files with 26 additions and 10 deletions
|
@ -1,7 +1,13 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- encoding: utf-8 -*-
|
# -*- encoding: utf-8 -*-
|
||||||
|
|
||||||
|
""" Pour détecter les gens en chambre invalide, les prévenir, et supprimer leurs machines
|
||||||
|
en l'absence de réponse. Récupérer des IPs, c'est cool."""
|
||||||
|
|
||||||
# Codé par b2moo, commenté par 20-100, cr{itiqu|on}é par Nit
|
# Codé par b2moo, commenté par 20-100, cr{itiqu|on}é par Nit
|
||||||
|
# <daniel.stan@crans.org>
|
||||||
|
# <legallic@crans.org>
|
||||||
|
# <samir@crans.org>
|
||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
import time
|
import time
|
||||||
|
@ -10,13 +16,22 @@ import ldap_crans
|
||||||
conn = ldap_crans.CransLdap()
|
conn = ldap_crans.CransLdap()
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
#: envoyer un mail à chaque adhérent concerné
|
||||||
sendmails = False
|
sendmails = False
|
||||||
if "--mail-all" in sys.argv:
|
if "--mail-all" in sys.argv:
|
||||||
sendmails = True
|
sendmails = True
|
||||||
import email.Header
|
import email.Header
|
||||||
|
|
||||||
import os
|
#: Envoyer un mail à respbats
|
||||||
|
sendmail_respbats = True
|
||||||
|
if "--no-mail" in sys.argv:
|
||||||
|
sendmail_respbats = False
|
||||||
|
|
||||||
|
DEBUG = False
|
||||||
|
if "--debug" in sys.argv:
|
||||||
|
DEBUG = True
|
||||||
|
|
||||||
|
import os
|
||||||
import config
|
import config
|
||||||
year = config.ann_scol
|
year = config.ann_scol
|
||||||
delai = config.demenagement_delai
|
delai = config.demenagement_delai
|
||||||
|
@ -46,7 +61,7 @@ for clandestin in bad_boys_e_s:
|
||||||
delta = now - kickout_date
|
delta = now - kickout_date
|
||||||
ttl = delai*86400 - delta
|
ttl = delai*86400 - delta
|
||||||
if ttl > 0:
|
if ttl > 0:
|
||||||
if sendmails and machine_liste != []:
|
if sendmails and machine_liste != [] or DEBUG:
|
||||||
# On lui envoie un mail pour le prévenir
|
# On lui envoie un mail pour le prévenir
|
||||||
to = clandestin.mail()
|
to = clandestin.mail()
|
||||||
if not "@" in to:
|
if not "@" in to:
|
||||||
|
@ -55,15 +70,14 @@ for clandestin in bad_boys_e_s:
|
||||||
"chambre" : exchambre,
|
"chambre" : exchambre,
|
||||||
"jours" : int(ttl/86400) + 1,
|
"jours" : int(ttl/86400) + 1,
|
||||||
"to" : to}
|
"to" : to}
|
||||||
|
if DEBUG:
|
||||||
|
print mail
|
||||||
mailer = os.popen("/usr/sbin/sendmail -t", "w")
|
mailer = os.popen("/usr/sbin/sendmail -t", "w")
|
||||||
mailer.write(mail.encode("utf-8") + "\n.")
|
mailer.write(mail.encode("utf-8") + "\n.")
|
||||||
mailer.close()
|
mailer.close()
|
||||||
|
|
||||||
else:
|
else:
|
||||||
for m in machine_liste:
|
for m in machine_liste:
|
||||||
# On n'a pas envie d'essayer de supprimer une machine qui a une blackliste
|
|
||||||
if len(m.blacklist_actif()) > 0:
|
|
||||||
continue
|
|
||||||
to_print.append( (clandestin.id(), m.ip(), m.id(), m.nom()) )
|
to_print.append( (clandestin.id(), m.ip(), m.id(), m.nom()) )
|
||||||
m2 = conn.search('mid=%s' % m.id(),mode='w')['machine'][0]
|
m2 = conn.search('mid=%s' % m.id(),mode='w')['machine'][0]
|
||||||
m2.delete('Adherent sans chambre valide depuis %d jours' % delai)
|
m2.delete('Adherent sans chambre valide depuis %d jours' % delai)
|
||||||
|
@ -74,7 +88,7 @@ if to_print != []:
|
||||||
hostnamemaxsize = max([len(i[3]) for i in to_print])
|
hostnamemaxsize = max([len(i[3]) for i in to_print])
|
||||||
template = u"| %%4s | %%-15s | %%4s | %%-%ss |\n" % (hostnamemaxsize)
|
template = u"| %%4s | %%-15s | %%4s | %%-%ss |\n" % (hostnamemaxsize)
|
||||||
message = u""
|
message = u""
|
||||||
message += u"\nListe des machines supprimée pour chambre invalide depuis plus de %s jours :\n" % delai
|
message += u"\nListe des machines supprimées pour chambre invalide depuis plus de %s jours :\n" % delai
|
||||||
tiret_line = u"+------+-----------------+------+-%s-+\n" % ("-" * hostnamemaxsize)
|
tiret_line = u"+------+-----------------+------+-%s-+\n" % ("-" * hostnamemaxsize)
|
||||||
message += tiret_line
|
message += tiret_line
|
||||||
message += template % ("aid", " ip", "mid", (" " * (max((hostnamemaxsize-8)/2,0)) + "hostname"))
|
message += template % ("aid", " ip", "mid", (" " * (max((hostnamemaxsize-8)/2,0)) + "hostname"))
|
||||||
|
@ -86,7 +100,9 @@ if to_print != []:
|
||||||
headers += u"Content-Type: text/plain; charset=UTF-8\n"
|
headers += u"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
headers += u"To: respbats@crans.org\n"
|
headers += u"To: respbats@crans.org\n"
|
||||||
mail = headers + "\n" + message
|
mail = headers + "\n" + message
|
||||||
mailer = os.popen("/usr/sbin/sendmail -t", "w")
|
if sendmail:
|
||||||
mailer.write(mail.encode("utf-8") + "\n.")
|
mailer = os.popen("/usr/sbin/sendmail -t", "w")
|
||||||
mailer.close()
|
mailer.write(mail.encode("utf-8") + "\n.")
|
||||||
|
mailer.close()
|
||||||
|
else:
|
||||||
|
print mail
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue