Nouvelles features :

* possibilit de regarder le liste des services  redmarrer (--list)
 * supression des services (--remove)
 * aide (-h, --help)

darcs-hash:20041009160835-41617-cd84ec98395bf8dd116b361f8c91206ddb04f9a7.gz
This commit is contained in:
pauget 2004-10-09 18:08:35 +02:00
parent 611b9c8061
commit 5334084d8d

View file

@ -1,16 +1,34 @@
#! /usr/bin/env python
# -*- coding: iso-8859-15 -*-
# -*- coding: iso-8859-15 -*-
# Copyright (C) Frédéric Pauget
# Licence : GPLv2
"""Ce script permet de lancer la reconfiguration des divers services
Usage: %(prog)s options
Les options possibles sont :
\t%(options)s
Les options avec = doivent être suivies d'un argument. Plusieurs
arguments peuvent être founis pour une même option, les séparer par &
"""
import sys, signal, os, commands, getopt, smtplib, shutil
sys.path.append('/usr/scripts/gestion')
from ldap_crans import crans_ldap, crans, smtpserv
from ldap_crans import crans_ldap, crans, smtpserv, hostname
from lock import *
from affich_tools import anim, cprint, OK, ERREUR, WARNING
from time import localtime, strftime
import config
args_autorises = ['quiet', 'remove=', 'list' ,'help']
if hostname == 'zamok' :
args_autorises += [ 'home=', 'mail_bienvenue=', 'ML-ENS=', 'droits', 'switch=' , 'dhcp', 'dns', 'firewall' , 'del_user=']
elif hostname == 'nectaris' :
args_autorises += [ 'conf_wifi', 'bornes_wifi=' , 'droits-nectaris']
# On vérifie que l'on est root
if os.getuid() != 0:
sys.stderr.write("Il faut être root\n")
@ -24,7 +42,7 @@ make_lock('auto_generate',0)
##### Options fournies ?
try :
if len(sys.argv) > 1 :
options, arg = getopt.getopt(sys.argv[1:], '', ['quiet', 'home=', 'mail_bienvenue=', 'ML-ENS=', 'droits', 'switch=' , 'dhcp', 'dns', 'firewall', 'conf_wifi', 'bornes_wifi=' , 'del_user=', 'droits-nectaris'])
options, arg = getopt.getopt(sys.argv[1:], 'h', args_autorises)
else :
options, arg = ( [],'')
except getopt.error, msg :
@ -37,8 +55,20 @@ to_do = {}
for opt, val in options :
if opt == '--quiet' :
debug = 0
elif opt == '--remove' :
for serv in val.split('&') :
print 'Supression de %s' % serv
db.services_to_restart('-%s' % serv)
sys.exit(0)
elif opt == '--list' :
print 'Services à redémarrer :'
print db.services_to_restart()
sys.exit(0)
elif opt =='-h' or opt == '--help' :
print __doc__ % { 'prog' : sys.argv[0].split('/')[-1] , 'options' : '\n\t'.join(args_autorises) }
sys.exit(0)
elif len(opt)>2 and opt[:2]=='--' :
to_do[opt[2:]] = val.split('.')
to_do[opt[2:]] = val.split('&')
##### Lecture de la base LDAP si besion ce qu'il y a a faire et préparation
if not to_do :
@ -49,11 +79,9 @@ else :
auto = 0
if debug : print 'Services à redémarrer imposés (non lecture de la base LDAP)'
from socket import gethostname
inst = []
if gethostname().split(".")[0] == 'zamok':
if hostname == 'zamok':
if 'del_user' in to_do.keys() :
if auto : db.services_to_restart('-del_user')
cprint('Archivage fichiers utilisateur','gras')
@ -248,7 +276,7 @@ if gethostname().split(".")[0] == 'zamok':
if auto : db.services_to_restart('%s' % i[1])
sys.stdout.write('Erreur dans la config de %s.\n' % i[1])
elif gethostname().split(".")[0] == 'nectaris':
elif hostname == 'nectaris':
# On s'occupe de nectaris
if 'conf_wifi' in to_do.keys():
if auto : db.services_to_restart('-conf_wifi')