Clarifications.
darcs-hash:20060322130058-68412-c46767e4f83b7a7aa4bcceb4936a513f6d93acad.gz
This commit is contained in:
parent
6b20d9e6b3
commit
5213904bc5
1 changed files with 18 additions and 16 deletions
|
@ -442,23 +442,23 @@ class crans_ldap:
|
||||||
def services_to_restart(self, new=None, args=[], start=0):
|
def services_to_restart(self, new=None, args=[], start=0):
|
||||||
"""
|
"""
|
||||||
start indique la date (en secondes depuis epoch) à partir du
|
start indique la date (en secondes depuis epoch) à partir du
|
||||||
moment où cette action sera effectué
|
moment où cette action sera effectuée.
|
||||||
|
|
||||||
Si new = None retourne la liste des services à redémarrer
|
Si new = None retourne la liste des services à redémarrer.
|
||||||
|
|
||||||
Si new est fourni mais ne commence pas par '-', on ajoute
|
Si new est fourni, mais ne commence pas par '-', on ajoute
|
||||||
le service à la liste avec les arguments args (args doit être
|
le service à la liste avec les arguments args (args doit être
|
||||||
une liste).
|
une liste).
|
||||||
|
|
||||||
Si new commence par '-', on supprime le service si son start
|
Si new commence par '-', on supprime le service si son start
|
||||||
est dans le futur
|
est dans le futur.
|
||||||
|
|
||||||
Si new commence par '--', on supprime le service de condition.
|
Si new commence par '--', on supprime le service de condition.
|
||||||
"""
|
"""
|
||||||
if new: new = preattr(new)[1]
|
if new: new = preattr(new)[1]
|
||||||
|
|
||||||
# Quels services sont déjà à redémarrer ?
|
# Quels services sont déjà à redémarrer ?
|
||||||
serv = {} # { service: [ arguments ] }
|
serv = {} # { service: [ arguments ] }
|
||||||
serv_dates = {} # { service: [ dates de restart ] }
|
serv_dates = {} # { service: [ dates de restart ] }
|
||||||
services = []
|
services = []
|
||||||
for s in self.conn.search_s(self.base_services, 1, 'objectClass=service'):
|
for s in self.conn.search_s(self.base_services, 1, 'objectClass=service'):
|
||||||
|
@ -474,10 +474,10 @@ class crans_ldap:
|
||||||
if new[0] == '-':
|
if new[0] == '-':
|
||||||
if new[1] == '-':
|
if new[1] == '-':
|
||||||
# Double -- on enlève quelque soit la date
|
# Double -- on enlève quelque soit la date
|
||||||
remove_dn = 'cn=%s,%s' % ( new[2:], self.base_services )
|
remove_dn = 'cn=%s,%s' % (new[2:], self.base_services)
|
||||||
else:
|
else:
|
||||||
# On enlève uniquement si la date est passée
|
# On enlève uniquement si la date est passée
|
||||||
remove_dn = 'cn=%s,%s' % ( new[1:], self.base_services )
|
remove_dn = 'cn=%s,%s' % (new[1:], self.base_services)
|
||||||
if not serv.has_key(new[1:]):
|
if not serv.has_key(new[1:]):
|
||||||
# Existe pas => rien à faire
|
# Existe pas => rien à faire
|
||||||
return
|
return
|
||||||
|
@ -496,12 +496,12 @@ class crans_ldap:
|
||||||
# Si n'existe pas => Erreur mais le résultat est là.
|
# Si n'existe pas => Erreur mais le résultat est là.
|
||||||
return
|
return
|
||||||
|
|
||||||
serv_dn = 'cn=%s,%s' % ( new, self.base_services )
|
serv_dn = 'cn=%s,%s' % (new, self.base_services)
|
||||||
|
|
||||||
# Petite fonction à appliquer aux arguments
|
# Conversion avant stockage dans la base
|
||||||
if type(args) == str: args = [ args ]
|
if type(args) == str: args = [args]
|
||||||
args = map(lambda x:preattr(x)[1], args)
|
args = map(lambda x:preattr(x)[1], args)
|
||||||
if type(start) == int: start = [ start ]
|
if type(start) == int: start = [start]
|
||||||
start = map(lambda x:preattr(x)[1], start)
|
start = map(lambda x:preattr(x)[1], start)
|
||||||
|
|
||||||
if new in serv.keys():
|
if new in serv.keys():
|
||||||
|
@ -513,7 +513,8 @@ class crans_ldap:
|
||||||
if arg not in serv[new]:
|
if arg not in serv[new]:
|
||||||
new_args.append(arg)
|
new_args.append(arg)
|
||||||
if new_args:
|
if new_args:
|
||||||
modlist += ldap.modlist.modifyModlist({ 'args': serv[new]}, { 'args': serv[new] + new_args })
|
modlist += ldap.modlist.modifyModlist({'args': serv[new]},
|
||||||
|
{'args': serv[new] + new_args})
|
||||||
|
|
||||||
new_date = []
|
new_date = []
|
||||||
# Nouvelle date ?
|
# Nouvelle date ?
|
||||||
|
@ -521,7 +522,8 @@ class crans_ldap:
|
||||||
if date not in serv_dates[new]:
|
if date not in serv_dates[new]:
|
||||||
new_date.append(date)
|
new_date.append(date)
|
||||||
if new_date:
|
if new_date:
|
||||||
modlist += ldap.modlist.modifyModlist({'start': serv_dates[new]}, { 'start': serv_dates[new] + new_date })
|
modlist += ldap.modlist.modifyModlist({'start': serv_dates[new]},
|
||||||
|
{'start': serv_dates[new] + new_date})
|
||||||
|
|
||||||
if modlist:
|
if modlist:
|
||||||
try:
|
try:
|
||||||
|
@ -533,9 +535,9 @@ class crans_ldap:
|
||||||
else:
|
else:
|
||||||
# Entrée non présente -> ajout
|
# Entrée non présente -> ajout
|
||||||
modlist = ldap.modlist.addModlist({ 'objectClass': 'service',
|
modlist = ldap.modlist.addModlist({ 'objectClass': 'service',
|
||||||
'cn': new,
|
'cn': new,
|
||||||
'args': args,
|
'args': args,
|
||||||
'start': start } )
|
'start': start })
|
||||||
try:
|
try:
|
||||||
self.conn.add_s(serv_dn, modlist)
|
self.conn.add_s(serv_dn, modlist)
|
||||||
except ldap.ALREADY_EXISTS:
|
except ldap.ALREADY_EXISTS:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue