#!/usr/share/ucs-test/runner python3
## desc: Creates DNS forward zone 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.udm as udm_test
import univention.testing.strings as uts
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,)

		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()),
			'a': ['%s' % (uts.random_ip())]
		}
		forward_zone = udm.create_object('dns/forward_zone', position=pos, **forward_zone_properties)
		answers = resolveDnsEntry(zone, 'SOA')
		answer = answers.qname.to_text()
		assert answer == zone, 'resolved name "%s" != created ldap-object "%s"' % (answer, zone)
