'Require that an owner name (and optionally an rdata type,
or specific rdataset) exists as a prerequisite to the
execution of the update.  The first argument is always a name.
The other arguments can be:
- rdataset...
- rdata...
- rdtype, string...'

def present(self, name, *args):

    if isinstance(name, string_types):
        name = dns.name.from_text(name, None)
    if (len(args) == 0):
        self.find_rrset(self.answer, name, dns.rdataclass.ANY, dns.rdatatype.ANY, dns.rdatatype.NONE, None, True, True)
    elif (isinstance(args[0], dns.rdataset.Rdataset) or isinstance(args[0], dns.rdata.Rdata) or (len(args) > 1)):
        if (not isinstance(args[0], dns.rdataset.Rdataset)):
            args = list(args)
            args.insert(0, 0)
        self._add(False, self.answer, name, *args)
    else:
        rdtype = args[0]
        if isinstance(rdtype, string_types):
            rdtype = dns.rdatatype.from_text(rdtype)
        self.find_rrset(self.answer, name, dns.rdataclass.ANY, rdtype, dns.rdatatype.NONE, None, True, True)
