49 lines
1.4 KiB
Python
Executable file
49 lines
1.4 KiB
Python
Executable file
#! /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()
|