[chambres_vides] Script supprimant les machines des adhérants chambres invalides depuis plus de n jours
Ignore-this: 65e5301410dcafc45c5f580367666cdf darcs-hash:20120911024010-3a55a-8ef9e12daffc3d7339a24d377c463c7b042f1573.gz
This commit is contained in:
parent
72bd9a17b6
commit
74d05f3c82
1 changed files with 54 additions and 0 deletions
54
gestion/chambres_vides.py
Executable file
54
gestion/chambres_vides.py
Executable file
|
@ -0,0 +1,54 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- encoding: utf-8 -*-
|
||||
|
||||
# Codé par b2moo, commenté par 20-100, cr{itiqu|on}é par Nit
|
||||
|
||||
import datetime
|
||||
import time
|
||||
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
|
||||
|
||||
# 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
|
||||
for clandestin in bad_boys_e_s:
|
||||
# Look for last kickout
|
||||
for l in clandestin.historique():
|
||||
# On récupère la date du dernier changement de chambre
|
||||
# (l'historique est enregistré par ordre chronologique)
|
||||
x = re.match("(.*),.* : chbre \(.*-> \?\?\?\?\)",l)
|
||||
if x <> None:
|
||||
d = x.group(1)
|
||||
|
||||
# On lui accorde un délai
|
||||
if timeout < time.mktime(time.strptime(d,'%d/%m/%Y %H:%M')):
|
||||
continue
|
||||
|
||||
for m in clandestin.machines():
|
||||
# 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 "+------+-------------------+------+-----------------------------------------+"
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue