diff --git a/services.py b/services.py index ee9e1c8..efe0d85 100644 --- a/services.py +++ b/services.py @@ -5,10 +5,9 @@ import ldap import lc_ldap import attributs import objets +import variables from gen_confs.dhcpd_new import dydhcp -services_dn = 'ou=services,dc=crans,dc=org' - # liste des attributs dont dépend un service services_to_attrs = {} services_to_attrs['macip'] = [ attributs.ipHostNumber, attributs.ip6HostNumber, attributs.macAddress, attributs.paiement, attributs.carteEtudiant ] @@ -91,7 +90,7 @@ def service_to_restart(conn, new=None, args=[], start=0): serv = {} # { service: [ arguments ] } serv_dates = {} # { service: [ dates de restart ] } services = [] - for s in conn.search_s(services_dn, 1, 'objectClass=service'): + for s in conn.search_s(variables.services_dn, 1, 'objectClass=service'): s = s[1] serv[s['cn'][0]] = s.get('args', []) serv_dates[s['cn'][0]] = s.get('start', []) @@ -104,10 +103,10 @@ def service_to_restart(conn, new=None, args=[], start=0): if new[0] == '-': if new[1] == '-': # Double -- on enlève quelque soit la date - remove_dn = 'cn=%s,%s' % (new[2:], services_dn) + remove_dn = 'cn=%s,%s' % (new[2:], variables.services_dn) else: # On enlève uniquement si la date est passée - remove_dn = 'cn=%s,%s' % (new[1:], services_dn) + remove_dn = 'cn=%s,%s' % (new[1:], variables.services_dn) if not serv.has_key(new[1:]): # Existe pas => rien à faire return @@ -127,7 +126,7 @@ def service_to_restart(conn, new=None, args=[], start=0): # Si n'existe pas => Erreur mais le résultat est là. return - serv_dn = 'cn=%s,%s' % (new, services_dn) + serv_dn = 'cn=%s,%s' % (new, variables.services_dn) # Conversion avant stockage dans la base if isinstance(args, basestring): diff --git a/variables.py b/variables.py index ffd1bfb..24b1310 100644 --- a/variables.py +++ b/variables.py @@ -9,6 +9,8 @@ uri = 'ldap://ldap.adm.crans.org/' base_dn = 'ou=data,dc=crans,dc=org' #: dn racine de l'endroit où sont stockés les logs log_dn = "cn=log" +#: dn racine de l'endroit où sont stockés les services à redémarrer +services_dn = 'ou=services,dc=crans,dc=org' #: dn pour se binder en root admin_dn = "cn=admin,dc=crans,dc=org" #: dn pour se binder en readonly @@ -16,6 +18,7 @@ readonly_dn = "cn=readonly,dc=crans,dc=org" #: dn racine de l'endroit où sont stockés les invités (artefact garbage ?) invite_dn = 'ou=invites,ou=data,dc=crans,dc=org' + # Protection contre les typos #: Droit de créer created = 'created'