#! /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='/var/run/postgresql', 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()