Clarifications.

darcs-hash:20060322130058-68412-c46767e4f83b7a7aa4bcceb4936a513f6d93acad.gz
This commit is contained in:
glondu 2006-03-22 14:00:58 +01:00
parent 6b20d9e6b3
commit 5213904bc5

View file

@ -442,16 +442,16 @@ 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 cette action sera effectué moment 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.
""" """
@ -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:
@ -535,7 +537,7 @@ class crans_ldap:
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: