#!/usr/share/ucs-test/runner python ## desc: Create dhcp/service ## tags: [udm] ## roles: [domaincontroller_master] ## exposure: careful ## packages: ## - univention-config ## - univention-directory-manager-tools import ldap.dn from univention.testing.udm import UCSTestUDM as UDM def name_from(dn, ext): return '%s_%s' % (ldap.dn.explode_dn(dn, True)[0], ext) def main(): i = 23 udm = UDM() kwargs = {'ignore_exists': '1'} dhcp_service = udm.create_object('dhcp/service', service='dhcp_service', **kwargs) dhcp_service_cn = udm.create_object('container/cn', name='dhcp_service_cn', position=dhcp_service, **kwargs) service_positions = [(dhcp_service, dhcp_service), (dhcp_service_cn, dhcp_service)] pool_positions = [] subnet_positions = [] for service_position, service_superordinate in service_positions: i += 1 _kwargs = dict({'position': service_position, 'superordinate': service_superordinate}, **kwargs) dhcp_host = udm.create_object('dhcp/host', host='dhcp_host', hwaddress='ethernet 01:ff:78:38:ab:%d' % (i,), **_kwargs) dhcp_server = udm.create_object('dhcp/server', server='dhcp_server_%d' % (i,), **_kwargs) subnet_positions.append((service_position, service_superordinate)) dhcp_shared = udm.create_object('dhcp/shared', name='dhcp_shared', **_kwargs) dhcp_shared_cn = udm.create_object('container/cn', name='dhcp_shared_cn', position=dhcp_shared) shared_subnet_positions = [ (dhcp_shared, dhcp_shared), (dhcp_shared_cn, dhcp_shared), ] for shared_subnet_position, shared_subnet_superordinate in shared_subnet_positions: _shared_kwargs = dict({'position': shared_subnet_position, 'superordinate': shared_subnet_position}, **kwargs) dhcp_shared_subnet = udm.create_object('dhcp/sharedsubnet', subnet='10.20.%d.0' % (i,), subnetmask='24', **_shared_kwargs) dhcp_shared_subnet_cn = udm.create_object('container/cn', name='dhcp_shared_subnet_cn', position=dhcp_shared_subnet) pool_positions.extend([ (dhcp_shared_subnet, dhcp_shared_subnet), (dhcp_shared_subnet_cn, dhcp_shared_subnet), ]) for subnet_position, subnet_superordinate in subnet_positions: _kwargs = dict({'position': subnet_position, 'superordinate': subnet_superordinate}, **kwargs) dhcp_subnet = udm.create_object('dhcp/subnet', subnet='10.20.%d.0' % (i,), subnetmask='24', **_kwargs) dhcp_subnet_cn = udm.create_object('container/cn', name='dhcp_subnet_cn', position=dhcp_subnet) pool_positions.extend([ (dhcp_subnet, dhcp_subnet), (dhcp_subnet_cn, dhcp_subnet), ]) for pool_position, pool_superordinate in pool_positions: _kwargs = dict({'position': pool_position, 'superordinate': pool_superordinate}, **kwargs) udm.create_object('dhcp/pool', range='10.20.%d.16 10.20.%d.20' % (i, i), name=name_from(pool_position, 'pool'), **_kwargs) if __name__ == '__main__': main()