diff --git a/gestion/gen_confs/exemptions.py b/gestion/gen_confs/exemptions.py new file mode 100755 index 00000000..247d41be --- /dev/null +++ b/gestion/gen_confs/exemptions.py @@ -0,0 +1,49 @@ +#! /usr/bin/env python +# -*- coding: iso-8859-15 -*- + +""" +Classe de synchronisation entre la base ldap et +la base postgresql pour la liste des exemptions +Utilisé par generate.py +""" + +# importation des fonctions et classes + +import sys, os, commands +sys.path.append('/usr/scripts/gestion') +from ldap_crans import crans_ldap +from gen_confs import gen_config +from pyPgSQL import PgSQL + + + +# définition de la classe + +class exemptions(gen_config) : + + base=[('138.231.136.0/28','0.0.0.0/0'),('138.231.136.0/21','138.231.0.0/16'),('138.231.148.0/22','138.231.0.0/16')] + restart_cmd = "" + + def __str__ (self) : + return "exemptions" + + def _gen (self) : + + machines = crans_ldap().search('exempt=*')['machine'] + + pgsql = PgSQL.connect(host='rouge.adm.crans.org', database='filtrage', user='crans') + curseur = pgsql.cursor() + + requete="DELETE FROM exemptes" + curseur.execute(requete) + + for couple in self.base : + requete="INSERT INTO exemptes (ip_crans,ip_dest) VALUES ('%s','%s')" % (couple[0],couple[1]) + curseur.execute(requete) + + for machine in machines : + for destination in machine.exempt() : + requete="INSERT INTO exemptes (ip_crans,ip_dest) VALUES ('%s','%s')" % (machine.ip(),destination) + curseur.execute(requete) + + pgsql.commit()