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

Reply via email to