def _count_records(zonename): namedconf = tutuconfig.get('namedconf', 'dnsbind'); ncp = NamedConfParser(); ncp.from_file(namedconf); zonefile = ncp.find_zone_file(zonename); z = dns.zone.from_file(zonefile); recordcount = 0; for node in z.nodes: for rds in z.nodes[node].rdatasets: recordcount += len(rds.items); return recordcount;
def delete(self): if self.posted(): zname = self.request.POST['zonename']; namedconf = tutuconfig.get('namedconf', 'dnsbind'); ncp = NamedConfParser(); ncp.from_file(namedconf); zonefile = ncp.find_zone_file(zname); os.remove(zonefile); ncp.delete_zone(zname); ncp.to_file(namedconf); return HTTPFound('/dns/zones'); # vim: set ts=2:
def delete(self): session = self.request.session; try: rzone = session['rzone']; except NameError: return HTTPFound('/dns/zones'); try: oname = session['rname']; rtype = session['rtype']; odata = session['rdata']; rclass = session['rclass']; except NameError: return HTTPFound('/dns/zone/{}'.format(rzone)); namedconf = tutuconfig.get('namedconf', 'dnsbind'); ncp = NamedConfParser(); ncp.from_file(namedconf); zonefile = ncp.find_zone_file(rzone); z = zone.from_file(zonefile); dset = z.get_rdataset(oname, rtype); newdset = dns.rdataset.Rdataset(rdc.from_text(rclass), rdt.from_text(rtype)); newdset.ttl = 300; if rtype == 'SOA': newdset.add(rdata); else: for rd in dset: if odata == rd.to_text(): pass else: newdset.add(rd); z.replace_rdataset(oname, newdset); tutuzone.save_zone(z, zonefile); return HTTPFound('/dns/zone/{}'.format(rzone)); # vim: set ts=2: