On 14 Dec 2010, at 03:13, Linder Michael wrote:
> I am encountered a problem to delete record which have the same name.
> For example:
> XXX 1.1.1.1
> XXX 2.2.2.2
>
> When I used:
> zone = dns.zone.from_file( zonefile, zonename )
> for (name, ttl, rdata) in zone.iterate_rdatas('SOA'):
> rdata.serial = rdata.serial + 1
> for rdata in zone.find_rdataset( recordtodelete, recordtype ):
> zone.delete_node(recordtodelete)
> zone.to_file(zonefile)
>
> These two records are deleted. How can I do to delete only the record
> with the wanted value?
You need to modify the rdataset, not delete the node.
import dns.zone
import dns.rdataset
zone = dns.zone.from_file('example', 'example')
zone.find_rdataset('@', 'SOA')[0].serial += 1
rds = zone.find_rdataset('foo', 'A')
to_delete = dns.rdataset.from_text('IN', 'A', 300, '10.0.0.2', '10.0.0.3')
rds -= to_delete
zone.to_file('example')
_______________________________________________
dnspython-users mailing list
[email protected]
http://howl.play-bow.org/mailman/listinfo.cgi/dnspython-users