diff --git a/lc_ldap.py b/lc_ldap.py index 0378c7f..9b52a6c 100644 --- a/lc_ldap.py +++ b/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 = {} diff --git a/objets.py b/objets.py index ee30071..276390b 100644 --- a/objets.py +++ b/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"""