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,6 +193,27 @@ 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
(club et Association Crans compris). Conçue pour s'éxécuter le plus

View file

@ -901,6 +901,18 @@ class machineFixe(machine):
u"""Machine fixe"""
ldap_name = "machineFixe"
class machineMulticast(machine):
u"""Machine pour inféré à partir des announces sap"""
ldap_name = None
def save(self):
pass
def delete(self):
pass
def create(self):
pass
def ressuscite(self, comm, login):
pass
@crans_object
class machineWifi(machine):
u"""Machine wifi"""