scripts/archive/surveillance/ra.py
2015-02-23 18:45:27 +01:00

52 lines
1.5 KiB
Python
Executable file

#! /usr/bin/env python
# -*- coding: utf-8 -*-
"""
Script pour placer les gens qui font du routeur advertisement sur le vlan
isolement
© Olivier Huber
License : GPLv2
"""
import os
import sys
sys.stdout = open('/tmp/badboys', 'a')
sys.stderr = open('/tmp/badboys', 'a')
import time
sys.path.append('/usr/scripts/gestion')
from ldap_crans import crans_ldap, is_actif
sys.path.append('/usr/scripts/utils')
from chambre_on_off import chambre_on_off
from time import sleep
if __name__ == '__main__':
Mac_ra = os.getenv('SOURCE_MAC')
print Mac_ra
with open('/tmp/badboys', 'a') as f:
print >>f, Mac_ra
Ldap = crans_ldap()
try:
Machine = Ldap.search('mac=%s' % Mac_ra, 'w' )['machine'][0]
except IndexError:
print u"La machine avec la mac %s n'est pas declarée !" % Mac_ra
sys.exit(1)
Host = Machine.nom()
Prop = Machine.proprietaire()
Bl = Prop.blacklist()
Bl_ipv6 = [ x for x in Bl if 'ipv6_ra' in x ]
for bl in Bl_ipv6:
if is_actif(bl):
# L'adhérent est déjà blacklisté
print "déjà blacklisté !!!!"
sys.exit(1)
else:
# L'adhérent n'est pas encore blacklisté
Prop.blacklist(['now', '-', 'ipv6_ra', Host])
print "ur a bad guy"
Prop.save()
Chbre = Machine.proprietaire().chbre()
chambre_on_off(Chbre, 'off')
time.sleep(5)
chambre_on_off(Chbre, 'on')
print str(Host), str(Prop), Machine.proprietaire().chbre()
sys.exit(0)