From dd6fb093d61448224978b737fffdacec826f176b Mon Sep 17 00:00:00 2001 From: Antoine Durand-Gasselin Date: Wed, 25 Feb 2009 19:51:17 +0100 Subject: [PATCH] [gen_conf] stripping trailing whitespaces darcs-hash:20090225185117-bd074-1c099460d115451d0adb95e5f873bde97b87317a.gz --- gestion/gen_confs/__init__.py | 48 +++++++++++++++++------------------ gestion/gen_confs/dhcpd.py | 32 +++++++++++------------ 2 files changed, 39 insertions(+), 41 deletions(-) diff --git a/gestion/gen_confs/__init__.py b/gestion/gen_confs/__init__.py index 5beb9a97..b1cfe73a 100755 --- a/gestion/gen_confs/__init__.py +++ b/gestion/gen_confs/__init__.py @@ -11,7 +11,7 @@ import sys, os, signal sys.path.append('/usr/scripts/gestion') import time, commands -from affich_tools import * +from affich_tools import * from lock import * import config @@ -27,23 +27,23 @@ class gen_config : def lockname(self): """Nom du lock""" return str(self.__class__) - + def lock(self) : """ Lock le service courant """ if not self._locked : make_lock(self.lockname(),'') self._locked = 1 - + def unlock(self) : """ Supression du lock """ if self._locked : remove_lock(self.lockname()) - + def __del__(self) : # Au cas où... self.unlock() - + def _restore(self) : - """ Affichage d'une erreur et du traceback si debug + """ Affichage d'une erreur et du traceback si debug Puis restauration des fichers """ print ERREUR if self.debug : @@ -52,53 +52,53 @@ class gen_config : # Restauration for nom, f in self.__restore.items() : os.system('cp -f %s %s' % ( f.name, nom ) ) - + def _open_conf(self,nom,comment=None) : - """ Créé un fichier - si comment est fourni, insère une entète qui utilisera le caractère + """ Créé un fichier + si comment est fourni, insère une entète qui utilisera le caractère de commentaire fourni - + copie l'ancien fichier dans un fichier temporaire pour permettre la restauration en cas d'échec de la configuration - + Retourne le descripteur du fichier """ - + f = NamedTemporaryFile() os.system('cp %s %s 2> /dev/null' % ( nom, f.name ) ) self.__restore[nom] = f - + fd = open(nom, 'w') - + if comment : e = """*********************************************************** Ce fichier est genere par les scripts de %s - Les donnees proviennent de la base LDAP et de la conf + Les donnees proviennent de la base LDAP et de la conf presente au debut du script. - + Generation : %s Fichier : %s - + NE PAS EDITER ***********************************************************""" % \ (__name__, time.strftime('%A %d %B %Y %H:%M'), nom ) e = comment + e.replace('\n', '\n%s' % comment) + '\n' - fd.write(e) + fd.write(e) return fd - + def gen_conf(self) : """ Génération des fichiers de conf, retourne False si erreur """ self.lock() self.anim = anim('\tgénération fichiers') try : warn = self._gen() - if warn : + if warn : self.anim.reinit() print WARNING if self.debug : sys.stderr.write(warn.encode("ISO-8859-15")) - else : + else : self.anim.reinit() print OK self.unlock() @@ -108,7 +108,7 @@ class gen_config : self._restore() self.unlock() return False - + def restart(self) : """ Redémarrage du service concerné """ if not self.restart_cmd : return @@ -125,9 +125,9 @@ class gen_config : else : print OK self.unlock() - + def reconfigure(self) : - """ Génère les fichiers puis redémarre le service + """ Génère les fichiers puis redémarre le service si la génération c'est bien passée """ cprint(u'Reconfiguration %s :' % self.__str__(), 'gras') if self.gen_conf() : diff --git a/gestion/gen_confs/dhcpd.py b/gestion/gen_confs/dhcpd.py index 5fd76d17..feadeca7 100755 --- a/gestion/gen_confs/dhcpd.py +++ b/gestion/gen_confs/dhcpd.py @@ -1,7 +1,7 @@ #! /usr/bin/env python # -*- coding: iso-8859-15 -*- - -""" Génération de la configuration pour le dhcp + +""" Génération de la configuration pour le dhcp Copyright (C) Frédéric Pauget Licence : GPLv2 @@ -13,15 +13,14 @@ from ldap_crans import hostname class dhcp(gen_config) : """ Génération du fichier de configuration pour dhcpd (DHCPD_CONF) - Le fichier comporte une partie par réseau servi, chaque réseau + Le fichier comporte une partie par réseau servi, chaque réseau servi doit être une clef du dictionnaire reseaux, la valeur correspondante est une chaine décrivant les options spécifiques à ce réseau. Les options communes sont celles de base_dhcp. - + Chaque machines possède ensuite une entrée de la forme de host_template """ ######################################PARTIE DE CONFIGURATION - # Fichier à écire if hostname == 'rouge' : DHCPD_CONF = '/etc/dhcp3/dhcpd.conf' @@ -69,7 +68,7 @@ option option-119 code 119 = text ; option option-119 "crans.org wifi.crans.org";""" } elif hostname == 'rouge': - reseaux = { '138.231.136.0/21' : + reseaux = { '138.231.136.0/21' : """authoritative; option routers 138.231.136.4; option domain-name-servers 138.231.136.3, 138.231.136.9, 138.231.136.10; @@ -124,8 +123,8 @@ subnet %(network)s netmask %(netmask)s { option root-path "/opt/ltsp/powerpc"; } """ - - ### Verbosité + + ### Verbosité # Si =1 ralera (chaine warnings) si machines hors zone trouvée # Si =0 ralera seulement si réseau vide verbose = 1 @@ -138,18 +137,17 @@ subnet %(network)s netmask %(netmask)s { restart_cmd = '/etc/init.d/dhcp3-server restart' else: restart_cmd = 'true' - + ######################################FIN PARTIE DE CONFIGURATION - def __str__(self) : return 'dhcp' - + def _gen(self) : warnings ='' - + ### Construction de la partie du fichier contenant les machines hosts={} - + self.anim.iter=len(self.machines) for machine in self.machines : self.anim.cycle() @@ -168,7 +166,7 @@ subnet %(network)s netmask %(netmask)s { try : hosts[net] += host_template % d except : hosts[net] = host_template % d t = 1 - + ### Ecriture du fichier fd = self._open_conf(self.DHCPD_CONF,'#') fd.write(self.base_conf) @@ -179,9 +177,9 @@ subnet %(network)s netmask %(netmask)s { d = param(net) d['OPTIONS_RESEAU'] = options d['HOSTs'] = hosts[net] - + fd.write(self.base_dhcp % d) - + fd.close() - + return warnings