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:
parent
32f51593b6
commit
f4730bb6ea
2 changed files with 34 additions and 1 deletions
23
lc_ldap.py
23
lc_ldap.py
|
@ -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 = {}
|
||||
|
|
12
objets.py
12
objets.py
|
@ -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"""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue