Migration zamok.

darcs-hash:20050825141815-41617-f9c9222b78b7bc6c276228367d33895cf1b27f81.gz
This commit is contained in:
pauget 2005-08-25 16:18:15 +02:00
parent b71f14546d
commit e4bbb04a86
4 changed files with 27 additions and 118 deletions

View file

@ -36,7 +36,7 @@ make_lock('auto_generate','Big lock',nowait=1)
class base_reconfigure :
__service_develop = {
'macip' : [ 'rouge-macip', 'bleu-macip', 'sila-macip' , 'komaz-macip', 'zamok-macip' ] ,
'macip' : [ 'rouge-macip', 'bleu-macip', 'sila-macip' , 'komaz-macip' ] ,
'droits': [ 'rouge-droits', 'nectaris-droits' ] ,
'blacklist_upload' : [ 'bl_squid_upload' , 'komaz-blacklist'] }
@ -130,6 +130,10 @@ class rouge(base_reconfigure) :
def mail_bienvenue(self,mails) :
from adherents import mail_bienvenue
self._do(mail_bienvenue(mails))
def switch(self,chambres) :
from gen_confs.switchs import switch
self._do(switch(chambres))
class bleu(base_reconfigure) :
# Tout est dans le parent
@ -219,7 +223,7 @@ class nectaris(base_reconfigure) :
if self.__restart_wifi_update :
os.system("cd / ; systrace -d /etc/systrace/wifi-update -A /usr/local/bin/twistd --syslog -o -y /usr/scripts/gestion/wifi-update.py --pidfile=/var/run/wifi-update.pid")
class zamok(base_reconfigure) :
class vert(base_reconfigure) :
def home(self,args) :
from adherents import home
self._do(home(args))
@ -227,11 +231,7 @@ class zamok(base_reconfigure) :
def del_user(self,args) :
from adherents import del_user
self._do(del_user(args))
def switch(self,chambres) :
from gen_confs.switchs import switch
self._do(switch(chambres))
signal.signal(signal.SIGINT,signal.SIG_DFL) # Comportement normal de Ctrl-C
remove_lock('auto_generate')

View file

@ -248,7 +248,7 @@ def set_etudes(adher) :
if result[0] == "Pers":
arg = u'--title "Etudes (2/3)" '
arg+= u'--msgbox "Personnel ENS\n\n' + \
u'Attention, un personnel ENS est un cas bien particulier. Cela correspond à une personne n\'étant pas élève, étant prof dans un département ou un labo, disposant d\'une adresse @ens-cachan.fr. Cela ne donne accès qu\'au wifi, pour l\'année 2005 uniquement. Il ne pourra pas disposer d\'un compte sur zamok et n\'aura pas accès au réseau interne.\n\n\n" 0 0'
u'Attention, un personnel ENS est un cas bien particulier. Cela correspond à une personne n\'étant pas élève, étant prof dans un département ou un labo, disposant d\'une adresse @ens-cachan.fr. Cela ne donne accès qu\'au wifi, pour l\'année 2005 uniquement. Il ne pourra pas disposer d\'un compte crans et n\'aura pas accès au réseau interne.\n\n\n" 0 0'
dialog(arg)
etudes[1] = result[0]
@ -363,9 +363,9 @@ def set_mail(adher) :
arg+= u'--menu "Adresse mail de l\'adhérent :" 0 0 0 '
arg+= u'"Adresse mail extérieure" "" '
if adher.compte() :
arg+= u'"Laisser le compte sur zamok" "(login : %s)"' % adher.compte()
arg+= u'"Laisser le compte crans" "(login : %s)"' % adher.compte()
else :
arg+= u'"Créer un compte sur zamok" "(adresse @crans.org)"'
arg+= u'"Créer un compte crans" "(adresse @crans.org)"'
annul , result = dialog(arg)
if annul : return 1
@ -412,11 +412,11 @@ def set_mail_ext(adher) :
def set_compte(adher) :
"""
Créé un compte sur zamok pour un adhérent.
Créé un compte sur vert pour un adhérent.
"""
# Message d'avertissement
arg = u'--title "Création compte sur zamok pour %s" ' % adher.Nom()
arg = u'--title "Création compte crans pour %s" ' % adher.Nom()
arg+= u'--colors --yesno "\Zr\Z1AVERTISSEMENT :\Zn \n'
arg+= u'L\'adhérent devra impérativement consulter l\'adresse mail associée\n\n\n\\ZnContinuer ?" '
arg+= u'0 0'
@ -443,7 +443,7 @@ def set_compte(adher) :
if err :
while 1:
# Mauvais login => on demande
arg = u'--title "Création d\'un compte sur zamok pour %s" ' % adher.Nom()
arg = u'--title "Création d\'un compte crans pour %s" ' % adher.Nom()
arg+= u'--inputbox "Choix du login\n'
arg+= u'Le login doit faire au maximum %s caractères\n' % config.maxlen_login
arg+= u'Il ne doit pas être un pseudo ou prénom mais doit être relié au nom de famille\n'
@ -458,7 +458,7 @@ def set_compte(adher) :
except EnvironmentError, c : e = c.args[0]
except ValueError, c : e = c.args[0]
if e :
arg = u'--title "Création compte sur zamok pour %s" ' % adher.Nom()
arg = u'--title "Création compte crans pour %s" ' % adher.Nom()
arg+= u'--msgbox "%s\n\n\n" 0 0' % e
dialog(arg)
continue
@ -475,7 +475,7 @@ def set_compte(adher) :
txt+= u'\n'
arg = u'--title "Création compte sur zamok pour %s" ' % adher.Nom()
arg = u'--title "Création compte crans pour %s" ' % adher.Nom()
arg+= u'--colors --msgbox "%s\n\n\n" 0 0' % txt
dialog(arg)
@ -609,14 +609,14 @@ def set_local(club) :
def set_club_compte(club) :
"""
Créé un compte sur zamok pour un club.
Créé un compte sur vert pour un club.
"""
while 1 :
arg = u'--title "Création d\'un compte sur zamok pour %s" ' % club.Nom()
arg = u'--title "Création d\'un compte crans pour %s" ' % club.Nom()
arg+= u'--inputbox "Choix du login\n'
arg+= u'Le nom pour le login doit faire au maximum %s caractères\n' % config.maxlen_login
arg+= u'Le login sur zamok sera club-\'nom du club\'\n'
arg+= u'Le login sur ssh sera club-\'nom du club\'\n'
arg+= u'Le site web du club sera accessible via l\'adresse http://clubs.crans.ens-cachan.fr/\'nom du club\'\n'
arg+= u'Seuls les caractères alphabétiques et le - sont autorisés" '
arg+= u'0 0 ""'
@ -629,7 +629,7 @@ def set_club_compte(club) :
except EnvironmentError, c : e = c.args[0]
except ValueError, c : e = c.args[0]
if e :
arg = u'--title "Création compte sur zamok pour %s" ' % club.Nom()
arg = u'--title "Création compte crans pour %s" ' % club.Nom()
arg+= u'--msgbox "%s\n\n\n" 0 0' % e
dialog(arg)
continue
@ -640,7 +640,7 @@ def set_club_compte(club) :
txt+= u'\n'
arg = u'--title "Création compte sur zamok pour %s" ' % club.Nom()
arg = u'--title "Création compte crans pour %s" ' % club.Nom()
arg+= u'--colors --msgbox "%s\n\n\n" 0 0' % txt
dialog(arg)
@ -939,7 +939,7 @@ def modif_club(club) :
arg+= u'"Responsable" "Changer le responsable du club %s" ' % club.responsable().Nom()
arg+= u'"Administratif" "Précâblage" '
arg+= u'"Local" "Modifier le local du club" '
arg+= u'"Compte" "Créer un compte sur zamok" '
arg+= u'"Compte" "Créer un compte crans." '
if club.compte() :
arg+= u'"Alias" "Créer ou supprimer un alias mail" '
if isdeconnecteur :

View file

@ -1203,7 +1203,7 @@ class base_proprietaire(base_classes_crans) :
if err : ret += '\nEssayer de corriger les erreurs machines en éditant celles-ci.\n'
# Faut-il créer un compte sur zamok ?
# Faut-il créer un compte sur vert ?
if 'compte' in self.modifs :
ret += u'\nUn compte a été créé :\n login : %s\n' % self.compte()
args = self._data['homeDirectory'][0] + ','
@ -1389,7 +1389,10 @@ class adherent(base_proprietaire) :
# Personne sur le campus
return ''
else :
return map(decode,self._data.get('postalAddress', ['','','',''])[:4])
addr = self._data.get('postalAddress', ['','','',''])[:4]
if len(addr) < 4:
addr = addr + ['']*(4-len(addr))
return map(decode,addr)
if type(new)!=list and len(new)!=4 :
raise TypeError
@ -1689,7 +1692,7 @@ class club(base_proprietaire) :
return decode(annu.get(self.chbre(),''))
def compte(self,login=None) :
""" Créé un compte au club sur zamok"""
""" Créé un compte au club sur vert"""
if login==None :
return self._data.get('uid',[''])[0]

View file

@ -1,94 +0,0 @@
#! /usr/bin/env python
# -*- coding: iso-8859-15 -*-
import sys, sre
from socket import gethostname
hostname = gethostname().split(".")[0]
# Fichiers à modifier et chaine indiquant un commentaire dans ceux-ci
if hostname == 'zamok' :
fichiers = { '/etc/bind/named.conf.options' : '//' ,
'/etc/postfix/main.cf' : '#' }
elif hostname == 'sila' :
fichiers = { '/etc/bind/named.conf.options' : '//' ,
'/etc/squid/squid.conf' : '#' }
elif hostname == 'rouge' :
fichiers = { '/etc/bind/named.conf.options' : '//' ,
'/etc/postfix/main.cf' : '#' }
else :
print "Script sans effet sur cette machine."
sys.exit(1)
def edit(file,comment,secours) :
""" Edite le fichier fourni en commentant (mode normal)
ou décommentant (mode secours) les lignes signalées :
* celles se terminant avec #POUR SECOURS
* ou les n lignes (<10)suivant une qui commande par #POUR SECOURS-n
(si le -n est omis une seule ligne est affectée)"""
signal = '#POUR SECOURS'
l = len(signal)
fd = open(file)
line = fd.readline()
new = ''
reste = 0 # Nombre de lignes restant à traiter
while line :
l = line.rstrip()
mo = sre.match('^(.*)'+signal+'(|-.)$',l)
if (mo and len(mo.group(1)) > 1) or reste:
# Ligne pour secours
if not sre.match('^' + comment,l) and not secours:
# On est actuellement configuré en secours
# Il faut passer en normal
new += comment + line
elif sre.match('^' + comment,l) and secours :
# On est actuellement configuré en normal
# Il faut passer en secours
new += line.replace(comment,'',1)
else :
# Rien à faire, on est bien configuré
new += line
if reste :
reste -= 1
elif mo and len(mo.group(1)) == 0:
# On a une ligne avec secours uniquement, c'est les n
# prochaines lignes qui font foi
try : reste = int(mo.group(2)[1:])
except : reste = 1
new += line
else :
# Ligne normale
new += line
line = fd.readline()
fd.close()
# Ecriture de la nouvelle version
fd = open(file,'w')
fd.write(new)
fd.close()
def usage() :
print 'Usage : %s 0 pour reconfigurer les services locaux en normal' % sys.argv[0]
print ' %s 1 pour reconfigurer les services locaux en secours' % sys.argv[0]
print 'Fichiers modifiés par le changement de mode : \n\t', '\n\t'.join(fichiers.keys())
if __name__ == '__main__' :
if len(sys.argv) != 2 :
usage()
else :
mode = sys.argv[1]
if mode not in '01' :
usage()
else :
mode = int(mode)
for f, c in fichiers.items() :
try :
print 'Edition de %s' % f
edit(f,c,mode)
except :
import traceback
traceback.print_exc()