Migration zamok.
darcs-hash:20050825141815-41617-f9c9222b78b7bc6c276228367d33895cf1b27f81.gz
This commit is contained in:
parent
b71f14546d
commit
e4bbb04a86
4 changed files with 27 additions and 118 deletions
|
@ -36,7 +36,7 @@ make_lock('auto_generate','Big lock',nowait=1)
|
||||||
|
|
||||||
class base_reconfigure :
|
class base_reconfigure :
|
||||||
__service_develop = {
|
__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' ] ,
|
'droits': [ 'rouge-droits', 'nectaris-droits' ] ,
|
||||||
'blacklist_upload' : [ 'bl_squid_upload' , 'komaz-blacklist'] }
|
'blacklist_upload' : [ 'bl_squid_upload' , 'komaz-blacklist'] }
|
||||||
|
|
||||||
|
@ -131,6 +131,10 @@ class rouge(base_reconfigure) :
|
||||||
from adherents import mail_bienvenue
|
from adherents import mail_bienvenue
|
||||||
self._do(mail_bienvenue(mails))
|
self._do(mail_bienvenue(mails))
|
||||||
|
|
||||||
|
def switch(self,chambres) :
|
||||||
|
from gen_confs.switchs import switch
|
||||||
|
self._do(switch(chambres))
|
||||||
|
|
||||||
class bleu(base_reconfigure) :
|
class bleu(base_reconfigure) :
|
||||||
# Tout est dans le parent
|
# Tout est dans le parent
|
||||||
pass
|
pass
|
||||||
|
@ -219,7 +223,7 @@ class nectaris(base_reconfigure) :
|
||||||
if self.__restart_wifi_update :
|
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")
|
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) :
|
def home(self,args) :
|
||||||
from adherents import home
|
from adherents import home
|
||||||
self._do(home(args))
|
self._do(home(args))
|
||||||
|
@ -228,10 +232,6 @@ class zamok(base_reconfigure) :
|
||||||
from adherents import del_user
|
from adherents import del_user
|
||||||
self._do(del_user(args))
|
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
|
signal.signal(signal.SIGINT,signal.SIG_DFL) # Comportement normal de Ctrl-C
|
||||||
remove_lock('auto_generate')
|
remove_lock('auto_generate')
|
||||||
|
|
||||||
|
|
|
@ -248,7 +248,7 @@ def set_etudes(adher) :
|
||||||
if result[0] == "Pers":
|
if result[0] == "Pers":
|
||||||
arg = u'--title "Etudes (2/3)" '
|
arg = u'--title "Etudes (2/3)" '
|
||||||
arg+= u'--msgbox "Personnel ENS\n\n' + \
|
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)
|
dialog(arg)
|
||||||
etudes[1] = result[0]
|
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'--menu "Adresse mail de l\'adhérent :" 0 0 0 '
|
||||||
arg+= u'"Adresse mail extérieure" "" '
|
arg+= u'"Adresse mail extérieure" "" '
|
||||||
if adher.compte() :
|
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 :
|
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)
|
annul , result = dialog(arg)
|
||||||
if annul : return 1
|
if annul : return 1
|
||||||
|
@ -412,11 +412,11 @@ def set_mail_ext(adher) :
|
||||||
|
|
||||||
def set_compte(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
|
# 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'--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'L\'adhérent devra impérativement consulter l\'adresse mail associée\n\n\n\\ZnContinuer ?" '
|
||||||
arg+= u'0 0'
|
arg+= u'0 0'
|
||||||
|
@ -443,7 +443,7 @@ def set_compte(adher) :
|
||||||
if err :
|
if err :
|
||||||
while 1:
|
while 1:
|
||||||
# Mauvais login => on demande
|
# 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'--inputbox "Choix du login\n'
|
||||||
arg+= u'Le login doit faire au maximum %s caractères\n' % config.maxlen_login
|
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'
|
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 EnvironmentError, c : e = c.args[0]
|
||||||
except ValueError, c : e = c.args[0]
|
except ValueError, c : e = c.args[0]
|
||||||
if e :
|
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
|
arg+= u'--msgbox "%s\n\n\n" 0 0' % e
|
||||||
dialog(arg)
|
dialog(arg)
|
||||||
continue
|
continue
|
||||||
|
@ -475,7 +475,7 @@ def set_compte(adher) :
|
||||||
|
|
||||||
txt+= u'\n'
|
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
|
arg+= u'--colors --msgbox "%s\n\n\n" 0 0' % txt
|
||||||
dialog(arg)
|
dialog(arg)
|
||||||
|
|
||||||
|
@ -609,14 +609,14 @@ def set_local(club) :
|
||||||
|
|
||||||
def set_club_compte(club) :
|
def set_club_compte(club) :
|
||||||
"""
|
"""
|
||||||
Créé un compte sur zamok pour un club.
|
Créé un compte sur vert pour un club.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
while 1 :
|
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'--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 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'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'Seuls les caractères alphabétiques et le - sont autorisés" '
|
||||||
arg+= u'0 0 ""'
|
arg+= u'0 0 ""'
|
||||||
|
@ -629,7 +629,7 @@ def set_club_compte(club) :
|
||||||
except EnvironmentError, c : e = c.args[0]
|
except EnvironmentError, c : e = c.args[0]
|
||||||
except ValueError, c : e = c.args[0]
|
except ValueError, c : e = c.args[0]
|
||||||
if e :
|
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
|
arg+= u'--msgbox "%s\n\n\n" 0 0' % e
|
||||||
dialog(arg)
|
dialog(arg)
|
||||||
continue
|
continue
|
||||||
|
@ -640,7 +640,7 @@ def set_club_compte(club) :
|
||||||
|
|
||||||
txt+= u'\n'
|
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
|
arg+= u'--colors --msgbox "%s\n\n\n" 0 0' % txt
|
||||||
dialog(arg)
|
dialog(arg)
|
||||||
|
|
||||||
|
@ -939,7 +939,7 @@ def modif_club(club) :
|
||||||
arg+= u'"Responsable" "Changer le responsable du club %s" ' % club.responsable().Nom()
|
arg+= u'"Responsable" "Changer le responsable du club %s" ' % club.responsable().Nom()
|
||||||
arg+= u'"Administratif" "Précâblage" '
|
arg+= u'"Administratif" "Précâblage" '
|
||||||
arg+= u'"Local" "Modifier le local du club" '
|
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() :
|
if club.compte() :
|
||||||
arg+= u'"Alias" "Créer ou supprimer un alias mail" '
|
arg+= u'"Alias" "Créer ou supprimer un alias mail" '
|
||||||
if isdeconnecteur :
|
if isdeconnecteur :
|
||||||
|
|
|
@ -1203,7 +1203,7 @@ class base_proprietaire(base_classes_crans) :
|
||||||
|
|
||||||
if err : ret += '\nEssayer de corriger les erreurs machines en éditant celles-ci.\n'
|
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 :
|
if 'compte' in self.modifs :
|
||||||
ret += u'\nUn compte a été créé :\n login : %s\n' % self.compte()
|
ret += u'\nUn compte a été créé :\n login : %s\n' % self.compte()
|
||||||
args = self._data['homeDirectory'][0] + ','
|
args = self._data['homeDirectory'][0] + ','
|
||||||
|
@ -1389,7 +1389,10 @@ class adherent(base_proprietaire) :
|
||||||
# Personne sur le campus
|
# Personne sur le campus
|
||||||
return ''
|
return ''
|
||||||
else :
|
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 :
|
if type(new)!=list and len(new)!=4 :
|
||||||
raise TypeError
|
raise TypeError
|
||||||
|
@ -1689,7 +1692,7 @@ class club(base_proprietaire) :
|
||||||
return decode(annu.get(self.chbre(),''))
|
return decode(annu.get(self.chbre(),''))
|
||||||
|
|
||||||
def compte(self,login=None) :
|
def compte(self,login=None) :
|
||||||
""" Créé un compte au club sur zamok"""
|
""" Créé un compte au club sur vert"""
|
||||||
if login==None :
|
if login==None :
|
||||||
return self._data.get('uid',[''])[0]
|
return self._data.get('uid',[''])[0]
|
||||||
|
|
||||||
|
|
|
@ -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()
|
|
Loading…
Add table
Add a link
Reference in a new issue