'Delete the rdataset matching I{rdtype} and I{covers}, if it
exists at the node specified by I{name}.
The I{name}, I{rdtype}, and I{covers} parameters may be
strings, in which case they will be converted to their proper
type.
It is not an error if the node does not exist, or if there is no
matching rdataset at the node.
If the node has no rdatasets after the deletion, it will itself
be deleted.
@param name: the owner name to look for
@type name: DNS.name.Name object or string
@param rdtype: the rdata type desired
@type rdtype: int or string
@param covers: the covered type (defaults to None)
@type covers: int or string'

def delete_rdataset(self, name, rdtype, covers=dns.rdatatype.NONE):

    name = self._validate_name(name)
    if isinstance(rdtype, (str, unicode)):
        rdtype = dns.rdatatype.from_text(rdtype)
    if isinstance(covers, (str, unicode)):
        covers = dns.rdatatype.from_text(covers)
    node = self.get_node(name)
    if (not (node is None)):
        node.delete_rdataset(self.rdclass, rdtype, covers)
        if (len(node) == 0):
            self.delete_node(name)
