#!/usr/share/ucs-test/runner python3
## desc: Creates DNS pointer record entry and try to resolve it
## bugs: [39269]
## roles:
##  - domaincontroller_master
## packages:
##   - univention-config
##   - univention-directory-manager-tools
## tags:
##  - skip_admember
## exposure: careful

import univention.testing.strings as uts
import univention.testing.udm as udm_test
from essential.dns_helper import resolveDnsEntry


if __name__ == '__main__':
	with udm_test.UCSTestUDM() as udm:
		zone = '%s.%s.' % (uts.random_name(), uts.random_name())
		pos = 'cn=dns,%s' % (udm.LDAP_BASE,)

		txt = uts.random_string()
		forward_zone_properties = {
			'zone': zone,
			'nameserver': udm.FQHN,
			'contact': '%s@%s.%s' % (uts.random_name(), uts.random_name(), uts.random_name()),
			'serial': '%s' % (uts.random_int()),
			'zonettl': '%s' % (uts.random_int(bottom_end=100, top_end=999)),
			'refresh': '%s' % (uts.random_int(bottom_end=10, top_end=99)),
			'expire': '%s' % (uts.random_int(bottom_end=10, top_end=99)),
			'ttl': '%s' % (uts.random_int(bottom_end=10, top_end=99)),
			'retry': '%s' % (uts.random_int()),
			'txt': txt,
		}
		forward_zone = udm.create_object('dns/forward_zone', position=pos, **forward_zone_properties)
		answers = resolveDnsEntry(zone, 'TXT')
		# FIXME PMH-2017-01-14: returned TXT data is enclosed in "
		answer = [rdata.to_text().strip('"') for rdata in answers]
		assert answer == [txt], 'resolved name "%s" != created ldap-object "%s"' % (answer, [txt])
