scripts/gestion/chambres_vides.py
Valentin Samir 74d05f3c82 [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
2012-09-11 04:40:10 +02:00

54 lines
2 KiB
Python
Executable file

#!/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 "+------+-------------------+------+-----------------------------------------+"