[gen_conf] stripping trailing whitespaces

darcs-hash:20090225185117-bd074-1c099460d115451d0adb95e5f873bde97b87317a.gz
This commit is contained in:
Antoine Durand-Gasselin 2009-02-25 19:51:17 +01:00
parent 95b51ff7e3
commit dd6fb093d6
2 changed files with 39 additions and 41 deletions

View file

@ -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() :

View file

@ -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