def verify_dns()

in dns/check-zone.py [0:0]


def verify_dns(queries):
    """
    Iterate over the queries comparing the responses to the record configuration
    """
    dns_error = False
    for record, responses in sorted(queries.items(), key=lambda d: d[0]):
        record_error = False    

        # Print out a log each record
        stdout.write(record.fqdn)
        stdout.write(',')
        stdout.write(record._type)
        stdout.write(',')
        stdout.write(unicode(record.ttl))

        # pull out the values we want to configure for this record
        record_values = record_value_list(record)

        # clean them up a bit
        configured_values = quote_cleanup(record_values)

        # ensure valid responses that match configured values
        for response in responses:
            stdout.write(',')

            # the responses need a quick test / cleanup
            response_values=record_response_values(record, response)
            if response_values:
                stdout.write(' '.join(response_values))

            # NS Records will need to be handled differently
            if record._type == "NS":
                continue

            # If we didn't get a response, it's an error
            if not response_values:
                dns_error = True
                record_error = False
                continue

            # All configured_values should be included in the response
            for configured_value in configured_values:
                if configured_value in response_values:
                    continue
                log.error('*** Configured Value not in response: %s (expected %s, got %s)',
                        record.fqdn, configured_value, response_values)
                record_error = True
                dns_error = True

            # All reponses should be included in the configured_values
            for response_value in response_values:
                if response_value in configured_values:
                    continue
                log.error('*** Response not in configuration: %s (expected %s, got %s',
                        record.fqdn, response_value, configured_values)
                record_error = True
                dns_error = True

        if not record_error:
            stdout.write(',True\n')
        else:
            stdout.write(',False\n')
    return dns_error