[comptage_upload] Odlyd prend la main
This commit is contained in:
parent
30e31a078c
commit
9a1c89591f
2 changed files with 101 additions and 0 deletions
92
gestion/gen_confs/filtrage.py
Normal file
92
gestion/gen_confs/filtrage.py
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
#! /usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
"""
|
||||||
|
Classe de synchronisation entre la base ldap et
|
||||||
|
la base postgresql pour la liste des exemptions
|
||||||
|
et la liste des machines.
|
||||||
|
Utilisé par generate.py
|
||||||
|
"""
|
||||||
|
|
||||||
|
# importation des fonctions et classes
|
||||||
|
|
||||||
|
import sys
|
||||||
|
if '/usr/scripts' not in sys.path:
|
||||||
|
sys.path.insert(0, '/usr/scripts/')
|
||||||
|
import lc_ldap.shortcuts
|
||||||
|
import lc_ldap.objets
|
||||||
|
from gestion.gen_confs import gen_config
|
||||||
|
import psycopg2
|
||||||
|
|
||||||
|
ldap_conn = lc_ldap.shortcuts.lc_ldap.readonly()
|
||||||
|
|
||||||
|
# Génération des la tables d'exemptions
|
||||||
|
#######################################
|
||||||
|
|
||||||
|
class exemptions(gen_config):
|
||||||
|
|
||||||
|
base = [('138.231.136.0/24', '0.0.0.0/0'), ('138.231.136.0/21', '138.231.0.0/16'), ('138.231.144.0/21', '138.231.0.0/16')]
|
||||||
|
restart_cmd = ""
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return "surveillance_exemptions"
|
||||||
|
|
||||||
|
def _gen(self):
|
||||||
|
machines = ldap_conn.search(u'(exempt=*)')
|
||||||
|
pgsql = psycopg2.connect(database='filtrage', user='crans')
|
||||||
|
curseur = pgsql.cursor()
|
||||||
|
|
||||||
|
# Purge.
|
||||||
|
requete = "DELETE FROM exemptes"
|
||||||
|
curseur.execute(requete)
|
||||||
|
|
||||||
|
for source, destination in self.base:
|
||||||
|
requete = "INSERT INTO exemptes (ip_crans, ip_dest) VALUES ('%s','%s')" % (source, destination)
|
||||||
|
curseur.execute(requete)
|
||||||
|
|
||||||
|
for machine in machines:
|
||||||
|
for destination in machine["exempt"]:
|
||||||
|
if destination.value.version == 4:
|
||||||
|
source = str(machine["ipHostNumber"][0])
|
||||||
|
requete = "INSERT INTO exemptes (ip_crans, ip_dest) VALUES ('%s','%s')" % (source, destination)
|
||||||
|
else:
|
||||||
|
source = str(machine["macAddress"][0])
|
||||||
|
requete = "INSERT INTO exemptes6 (mac_crans, ip_dest) VALUES ('%s','%s')" % (source, destination)
|
||||||
|
# Si ip vide, passons au suivant
|
||||||
|
if not source:
|
||||||
|
continue
|
||||||
|
curseur.execute(requete)
|
||||||
|
|
||||||
|
pgsql.commit()
|
||||||
|
|
||||||
|
# Génération des la liste des machines
|
||||||
|
######################################
|
||||||
|
|
||||||
|
class machines(gen_config):
|
||||||
|
restart_cmd = ""
|
||||||
|
def __str__(self):
|
||||||
|
return "surveillance_liste_machines"
|
||||||
|
|
||||||
|
def _gen(self):
|
||||||
|
machines = ldap_conn.search(u"(ipHostNumber=*)")['machine']
|
||||||
|
|
||||||
|
# liste des machines (on prend que les paimement ok)
|
||||||
|
# machines = self.machines
|
||||||
|
# machines = db.search('ip=*')['machine']
|
||||||
|
|
||||||
|
# connexion à la base postgresql
|
||||||
|
pgsql = psycopg2.connect(database='filtrage', user='crans')
|
||||||
|
curseur = pgsql.cursor()
|
||||||
|
curseur.execute("DELETE FROM machines;")
|
||||||
|
|
||||||
|
# ajout des entrée
|
||||||
|
for m in machines:
|
||||||
|
if m.proprio().__class__ == lc_ldap.objets.club:
|
||||||
|
curseur.execute("INSERT INTO machines (mac_addr, type, id) VALUES ('%s','club',%s);" % (m['macAddress'][0], m.proprio()['cid'][0].value))
|
||||||
|
elif m.proprio().__class__ == lc_ldap.objets.adherent:
|
||||||
|
curseur.execute("INSERT INTO machines (mac_addr, type, id) VALUES ('%s','adherent',%s);" % (m['macAddress'], m.proprio()['cid'][0].value))
|
||||||
|
elif m.proprio().__class__ == lc_ldap.objets.AssociationCrans:
|
||||||
|
curseur.execute("INSERT INTO machines (mac_addr, type, id) VALUES ('%s','crans',%s);" % (m['macAddress'], m['mid'][0].value))
|
||||||
|
# on commit
|
||||||
|
pgsql.commit()
|
||||||
|
|
|
@ -212,6 +212,15 @@ class thot(base_reconfigure):
|
||||||
from gen_confs.surveillance import machines
|
from gen_confs.surveillance import machines
|
||||||
self._do(machines(), self._machines())
|
self._do(machines(), self._machines())
|
||||||
|
|
||||||
|
class odlyd(base_reconfigure):
|
||||||
|
def filtrage_exemptions(self):
|
||||||
|
from gen_confs.filtrage import exemptions
|
||||||
|
self._do(exemptions())
|
||||||
|
|
||||||
|
def filtrage_machines(self):
|
||||||
|
from gen_confs.filtrage import machines
|
||||||
|
self._do(machines(), self._machines())
|
||||||
|
|
||||||
class zamok(base_reconfigure):
|
class zamok(base_reconfigure):
|
||||||
def del_user(self, args):
|
def del_user(self, args):
|
||||||
# Suppression des fichies d'impression
|
# Suppression des fichies d'impression
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue