Un fonction pour générer des objets machine lc_ldap à partir du dump des annonces sap dans /usr/scripts

Ça permet d'utiliser des fonctions générique sur les machines lc_ldap
pour s'occuper aussi du multicast. Notamment dans /usr/scripts/gestion/gen_confs/bind2.py
où cela nous permet de générer gratuirement la zone tv.crans.org et son reverse.
This commit is contained in:
Valentin Samir 2014-02-03 00:15:18 +01:00
parent 32f51593b6
commit f4730bb6ea
2 changed files with 34 additions and 1 deletions

View file

@ -193,8 +193,29 @@ class lc_ldap(ldap.ldapobject.LDAPObject, object):
ret.append(objets.new_cransldapobject(self, dn, mode, uldif))
return ret
def machinesMulticast(self):
import cPickle
import tv.dns
import config.dns
machines = []
sap=cPickle.load(open('/usr/scripts/var/tv/sap.pickel'))
for name_ip in sap.values():
for (nom, ip) in name_ip.items():
nom=unicode(nom, 'utf-8')
nom_ascii=tv.dns.ascii(nom)
nom_punycode=tv.dns.punycode(nom)
ldif = {
'ipHostNumber' : [unicode(ip)],
'objectClass': [u'machineFixe'],
'host': [u"%s.%s" % (nom_ascii, config.dns.zone_tv)]
}
if nom_punycode:
ldif['hostAlias']=[u"%s.%s" % (nom_punycode, config.dns.zone_tv)]
machines.append(objets.machineMulticast(self, "", ldif=ldif))
return machines
def allMachinesAdherents(self, mode='ro'):
"""Renvoie la liste de toutes les machines et de tous les adherents
"""Renvoie la liste de toutes les machines et de tous les adherents
(club et Association Crans compris). Conçue pour s'éxécuter le plus
rapidement possible. On dumpe malgré tout toute la base."""
res = {}