#!/usr/share/ucs-test/runner python3
## desc: Check dns/forward_zone SOA record serial number incrementation
## tags: [udm]
## roles: [domaincontroller_master]
## exposure: careful
## packages:
##   - univention-config
##   - univention-directory-manager-tools
## versions:
##  3.1-1: skip
##  3.2-0: fixed

import univention.testing.utils as utils
import univention.testing.udm as udm_test
import univention.testing.strings as uts

if __name__ == '__main__':
	with udm_test.UCSTestUDM() as udm:
		forward_zone_properties = {
			'zone': '%s.%s' % (uts.random_name(), uts.random_name()),
			'nameserver': uts.random_dns_record(),
			'contact': '%s@%s.%s' % (uts.random_name(), uts.random_name(), uts.random_name()),
			'serial': '1',
			'zonettl': '128',
			'refresh': '64',
			'expire': '32',
			'ttl': '16',
			'retry': '8'
		}

		forward_zone = udm.create_object('dns/forward_zone', **forward_zone_properties)
		new_ttl = '12'
		udm.modify_object('dns/forward_zone', dn=forward_zone, ttl=new_ttl, wait_for=True)

		utils.verify_ldap_object(forward_zone, {'sOARecord': ['%s %s. %s %s %s %s %s' % (
			forward_zone_properties['nameserver'],
			forward_zone_properties['contact'].replace('@', '.'),
			'2',
			forward_zone_properties['refresh'],
			forward_zone_properties['retry'],
			forward_zone_properties['expire'],
			new_ttl)]
		})
