View | Details | Raw Unified | Return to bug 45068 | Differences between
and this patch

Collapse All | Expand All

(-)a/services/univention-s4-connector/modules/univention/s4connector/s4/dns.py (-70 / +24 lines)
 Lines 984-991   def ucs_host_record_create(s4connector, object): Link Here 
984
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
984
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
985
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
985
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
986
	if len(searchResult) > 0:
986
	if len(searchResult) > 0:
987
		superordinate = s4connector_get_superordinate('dns/host_record', s4connector.lo, searchResult[0][0])
987
		newRecord = univention.admin.handlers.dns.host_record.object(None, s4connector.lo, position=None, dn=searchResult[0][0], attributes=[], update_zone=False)
988
		newRecord = univention.admin.handlers.dns.host_record.object(None, s4connector.lo, position=None, dn=searchResult[0][0], superordinate=superordinate, attributes=[], update_zone=False)
989
		newRecord.open()
988
		newRecord.open()
990
		if set(newRecord['a']) != set(a):
989
		if set(newRecord['a']) != set(a):
991
			newRecord['a'] = a
990
			newRecord['a'] = a
 Lines 996-1007   def ucs_host_record_create(s4connector, object): Link Here 
996
		zoneDN = __get_zone_dn(s4connector, zoneName)
995
		zoneDN = __get_zone_dn(s4connector, zoneName)
997
996
998
		ud.debug(ud.LDAP, ud.INFO, 'ucs_host_record_create: zoneDN: %s' % zoneDN)
997
		ud.debug(ud.LDAP, ud.INFO, 'ucs_host_record_create: zoneDN: %s' % zoneDN)
999
		superordinate = s4connector_get_superordinate('dns/host_record', s4connector.lo, zoneDN)
1000
		ud.debug(ud.LDAP, ud.INFO, 'ucs_host_record_create: superordinate: %s' % superordinate)
1001
998
1002
		position = univention.admin.uldap.position(zoneDN)
999
		position = univention.admin.uldap.position(zoneDN)
1003
1000
1004
		newRecord = univention.admin.handlers.dns.host_record.object(None, s4connector.lo, position, dn=None, superordinate=superordinate, attributes=[], update_zone=False)
1001
		newRecord = univention.admin.handlers.dns.host_record.object(None, s4connector.lo, position, dn=None, attributes=[], update_zone=False)
1005
		newRecord.open()
1002
		newRecord.open()
1006
		newRecord['name'] = relativeDomainName
1003
		newRecord['name'] = relativeDomainName
1007
		newRecord['a'] = a
1004
		newRecord['a'] = a
 Lines 1018-1025   def ucs_host_record_delete(s4connector, object): Link Here 
1018
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1015
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1019
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1016
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1020
	if len(searchResult) > 0:
1017
	if len(searchResult) > 0:
1021
		superordinate = s4connector_get_superordinate('dns/host_record', s4connector.lo, searchResult[0][0])
1018
		newRecord = univention.admin.handlers.dns.host_record.object(None, s4connector.lo, position=None, dn=searchResult[0][0], attributes=[], update_zone=False)
1022
		newRecord = univention.admin.handlers.dns.host_record.object(None, s4connector.lo, position=None, dn=searchResult[0][0], superordinate=superordinate, attributes=[], update_zone=False)
1023
		newRecord.open()
1019
		newRecord.open()
1024
		newRecord.delete()
1020
		newRecord.delete()
1025
	else:
1021
	else:
 Lines 1054-1061   def ucs_ptr_record_create(s4connector, object): Link Here 
1054
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1050
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1055
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1051
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1056
	if len(searchResult) > 0:
1052
	if len(searchResult) > 0:
1057
		superordinate = s4connector_get_superordinate('dns/ptr_record', s4connector.lo, searchResult[0][0])
1053
		newRecord = univention.admin.handlers.dns.ptr_record.object(None, s4connector.lo, position=None, dn=searchResult[0][0], attributes=[], update_zone=False)
1058
		newRecord = univention.admin.handlers.dns.ptr_record.object(None, s4connector.lo, position=None, dn=searchResult[0][0], superordinate=superordinate, attributes=[], update_zone=False)
1059
		newRecord.open()
1054
		newRecord.open()
1060
		if set(newRecord['ptr_record']) != set(ptr):
1055
		if set(newRecord['ptr_record']) != set(ptr):
1061
			newRecord['ptr_record'] = ptr[0]
1056
			newRecord['ptr_record'] = ptr[0]
 Lines 1065-1076   def ucs_ptr_record_create(s4connector, object): Link Here 
1065
	else:
1060
	else:
1066
		zoneDN = __get_zone_dn(s4connector, zoneName)
1061
		zoneDN = __get_zone_dn(s4connector, zoneName)
1067
1062
1068
		superordinate = s4connector_get_superordinate('dns/ptr_record', s4connector.lo, zoneDN)
1069
		ud.debug(ud.LDAP, ud.INFO, 'ucs_ptr_record_create: superordinate: %s' % superordinate)
1070
1071
		position = univention.admin.uldap.position(zoneDN)
1063
		position = univention.admin.uldap.position(zoneDN)
1072
1064
1073
		newRecord = univention.admin.handlers.dns.ptr_record.object(None, s4connector.lo, position, dn=None, superordinate=superordinate, attributes=[], update_zone=False)
1065
		newRecord = univention.admin.handlers.dns.ptr_record.object(None, s4connector.lo, position, dn=None, attributes=[], update_zone=False)
1074
		newRecord.open()
1066
		newRecord.open()
1075
		newRecord['address'] = relativeDomainName
1067
		newRecord['address'] = relativeDomainName
1076
		newRecord['ptr_record'] = ptr[0]
1068
		newRecord['ptr_record'] = ptr[0]
 Lines 1087-1094   def ucs_ptr_record_delete(s4connector, object): Link Here 
1087
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1079
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1088
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1080
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1089
	if len(searchResult) > 0:
1081
	if len(searchResult) > 0:
1090
		superordinate = s4connector_get_superordinate('dns/ptr_record', s4connector.lo, searchResult[0][0])
1082
		newRecord = univention.admin.handlers.dns.ptr_record.object(None, s4connector.lo, position=None, dn=searchResult[0][0], attributes=[], update_zone=False)
1091
		newRecord = univention.admin.handlers.dns.ptr_record.object(None, s4connector.lo, position=None, dn=searchResult[0][0], superordinate=superordinate, attributes=[], update_zone=False)
1092
		newRecord.open()
1083
		newRecord.open()
1093
		newRecord.delete()
1084
		newRecord.delete()
1094
	else:
1085
	else:
 Lines 1111-1118   def ucs_cname_create(s4connector, object): Link Here 
1111
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1102
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1112
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1103
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1113
	if len(searchResult) > 0:
1104
	if len(searchResult) > 0:
1114
		superordinate = s4connector_get_superordinate('dns/alias', s4connector.lo, searchResult[0][0])
1105
		newRecord = univention.admin.handlers.dns.alias.object(None, s4connector.lo, position=None, dn=searchResult[0][0], attributes=[], update_zone=False)
1115
		newRecord = univention.admin.handlers.dns.alias.object(None, s4connector.lo, position=None, dn=searchResult[0][0], superordinate=superordinate, attributes=[], update_zone=False)
1116
		newRecord.open()
1106
		newRecord.open()
1117
		if set(newRecord['cname']) != set(c):
1107
		if set(newRecord['cname']) != set(c):
1118
			newRecord['cname'] = c[0]
1108
			newRecord['cname'] = c[0]
 Lines 1122-1133   def ucs_cname_create(s4connector, object): Link Here 
1122
	else:
1112
	else:
1123
		zoneDN = __get_zone_dn(s4connector, zoneName)
1113
		zoneDN = __get_zone_dn(s4connector, zoneName)
1124
1114
1125
		superordinate = s4connector_get_superordinate('dns/alias', s4connector.lo, zoneDN)
1126
		ud.debug(ud.LDAP, ud.INFO, 'ucs_cname_create: superordinate: %s' % superordinate)
1127
1128
		position = univention.admin.uldap.position(zoneDN)
1115
		position = univention.admin.uldap.position(zoneDN)
1129
1116
1130
		newRecord = univention.admin.handlers.dns.alias.object(None, s4connector.lo, position, dn=None, superordinate=superordinate, attributes=[], update_zone=False)
1117
		newRecord = univention.admin.handlers.dns.alias.object(None, s4connector.lo, position, dn=None, attributes=[], update_zone=False)
1131
		newRecord.open()
1118
		newRecord.open()
1132
		newRecord['name'] = relativeDomainName
1119
		newRecord['name'] = relativeDomainName
1133
		newRecord['cname'] = c[0]
1120
		newRecord['cname'] = c[0]
 Lines 1144-1151   def ucs_cname_delete(s4connector, object): Link Here 
1144
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1131
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1145
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1132
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1146
	if len(searchResult) > 0:
1133
	if len(searchResult) > 0:
1147
		superordinate = s4connector_get_superordinate('dns/alias', s4connector.lo, searchResult[0][0])
1134
		newRecord = univention.admin.handlers.dns.alias.object(None, s4connector.lo, position=None, dn=searchResult[0][0], attributes=[], update_zone=False)
1148
		newRecord = univention.admin.handlers.dns.alias.object(None, s4connector.lo, position=None, dn=searchResult[0][0], superordinate=superordinate, attributes=[], update_zone=False)
1149
		newRecord.open()
1135
		newRecord.open()
1150
		newRecord.delete()
1136
		newRecord.delete()
1151
	else:
1137
	else:
 Lines 1185-1192   def ucs_srv_record_create(s4connector, object): Link Here 
1185
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1171
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1186
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1172
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1187
	if len(searchResult) > 0:
1173
	if len(searchResult) > 0:
1188
		superordinate = s4connector_get_superordinate('dns/srv_record', s4connector.lo, searchResult[0][0])
1174
		newRecord = univention.admin.handlers.dns.srv_record.object(None, s4connector.lo, position=None, dn=searchResult[0][0], attributes=[], update_zone=False)
1189
		newRecord = univention.admin.handlers.dns.srv_record.object(None, s4connector.lo, position=None, dn=searchResult[0][0], superordinate=superordinate, attributes=[], update_zone=False)
1190
		newRecord.open()
1175
		newRecord.open()
1191
		if ucr_locations:
1176
		if ucr_locations:
1192
			ud.debug(ud.LDAP, ud.INFO, 'ucs_srv_record_create: do not write SRV record back from S4 to UCS because location of SRV record have been overwritten by UCR')
1177
			ud.debug(ud.LDAP, ud.INFO, 'ucs_srv_record_create: do not write SRV record back from S4 to UCS because location of SRV record have been overwritten by UCR')
 Lines 1203-1214   def ucs_srv_record_create(s4connector, object): Link Here 
1203
	else:
1188
	else:
1204
		zoneDN = __get_zone_dn(s4connector, zoneName)
1189
		zoneDN = __get_zone_dn(s4connector, zoneName)
1205
1190
1206
		superordinate = s4connector_get_superordinate('dns/srv_record', s4connector.lo, zoneDN)
1207
		ud.debug(ud.LDAP, ud.INFO, 'ucs_srv_record_create: superordinate: %s' % superordinate)
1208
1209
		position = univention.admin.uldap.position(zoneDN)
1191
		position = univention.admin.uldap.position(zoneDN)
1210
1192
1211
		newRecord = univention.admin.handlers.dns.srv_record.object(None, s4connector.lo, position, dn=None, superordinate=superordinate, attributes=[], update_zone=False)
1193
		newRecord = univention.admin.handlers.dns.srv_record.object(None, s4connector.lo, position, dn=None, attributes=[], update_zone=False)
1212
		newRecord.open()
1194
		newRecord.open()
1213
		# Make syntax UDM compatible
1195
		# Make syntax UDM compatible
1214
		parts = univention.admin.handlers.dns.srv_record.unmapName([relativeDomainName])
1196
		parts = univention.admin.handlers.dns.srv_record.unmapName([relativeDomainName])
 Lines 1235-1242   def ucs_srv_record_delete(s4connector, object): Link Here 
1235
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1217
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1236
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1218
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1237
	if len(searchResult) > 0:
1219
	if len(searchResult) > 0:
1238
		superordinate = s4connector_get_superordinate('dns/srv_record', s4connector.lo, searchResult[0][0])
1220
		newRecord = univention.admin.handlers.dns.srv_record.object(None, s4connector.lo, position=None, dn=searchResult[0][0], attributes=[], update_zone=False)
1239
		newRecord = univention.admin.handlers.dns.srv_record.object(None, s4connector.lo, position=None, dn=searchResult[0][0], superordinate=superordinate, attributes=[], update_zone=False)
1240
		newRecord.open()
1221
		newRecord.open()
1241
		newRecord.delete()
1222
		newRecord.delete()
1242
	else:
1223
	else:
 Lines 1305-1312   def ucs_txt_record_create(s4connector, object): Link Here 
1305
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1286
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1306
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1287
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1307
	if len(searchResult) > 0:
1288
	if len(searchResult) > 0:
1308
		superordinate = s4connector_get_superordinate('dns/txt_record', s4connector.lo, searchResult[0][0])
1289
		foundRecord = univention.admin.handlers.dns.txt_record.object(None, s4connector.lo, position=None, dn=searchResult[0][0], attributes=[], update_zone=False)
1309
		foundRecord = univention.admin.handlers.dns.txt_record.object(None, s4connector.lo, position=None, dn=searchResult[0][0], superordinate=superordinate, attributes=[], update_zone=False)
1310
		foundRecord.open()
1290
		foundRecord.open()
1311
1291
1312
		# use normalized TXT records for comparison
1292
		# use normalized TXT records for comparison
 Lines 1323-1334   def ucs_txt_record_create(s4connector, object): Link Here 
1323
	else:
1303
	else:
1324
		zoneDN = __get_zone_dn(s4connector, zoneName)
1304
		zoneDN = __get_zone_dn(s4connector, zoneName)
1325
1305
1326
		superordinate = s4connector_get_superordinate('dns/txt_record', s4connector.lo, zoneDN)
1327
		ud.debug(ud.LDAP, ud.INFO, 'ucs_txt_record_create: superordinate: %s' % superordinate)
1328
1329
		position = univention.admin.uldap.position(zoneDN)
1306
		position = univention.admin.uldap.position(zoneDN)
1330
1307
1331
		newRecord = univention.admin.handlers.dns.txt_record.object(None, s4connector.lo, position, dn=None, superordinate=superordinate, attributes=[], update_zone=False)
1308
		newRecord = univention.admin.handlers.dns.txt_record.object(None, s4connector.lo, position, dn=None, attributes=[], update_zone=False)
1332
		newRecord.open()
1309
		newRecord.open()
1333
		newRecord['name'] = relativeDomainName
1310
		newRecord['name'] = relativeDomainName
1334
		newRecord[udm_property] = c
1311
		newRecord[udm_property] = c
 Lines 1345-1352   def ucs_txt_record_delete(s4connector, object): Link Here 
1345
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1322
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1346
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1323
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1347
	if len(searchResult) > 0:
1324
	if len(searchResult) > 0:
1348
		superordinate = s4connector_get_superordinate('dns/txt_record', s4connector.lo, searchResult[0][0])
1325
		newRecord = univention.admin.handlers.dns.txt_record.object(None, s4connector.lo, position=None, dn=searchResult[0][0], attributes=[], update_zone=False)
1349
		newRecord = univention.admin.handlers.dns.txt_record.object(None, s4connector.lo, position=None, dn=searchResult[0][0], superordinate=superordinate, attributes=[], update_zone=False)
1350
		newRecord.open()
1326
		newRecord.open()
1351
		newRecord.delete()
1327
		newRecord.delete()
1352
	else:
1328
	else:
 Lines 1380-1387   def ucs_ns_record_create(s4connector, object): Link Here 
1380
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1356
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1381
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1357
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1382
	if len(searchResult) > 0:
1358
	if len(searchResult) > 0:
1383
		superordinate = s4connector_get_superordinate('dns/ns_record', s4connector.lo, searchResult[0][0])
1359
		foundRecord = univention.admin.handlers.dns.ns_record.object(None, s4connector.lo, position=None, dn=searchResult[0][0], attributes=[], update_zone=False)
1384
		foundRecord = univention.admin.handlers.dns.ns_record.object(None, s4connector.lo, position=None, dn=searchResult[0][0], superordinate=superordinate, attributes=[], update_zone=False)
1385
		foundRecord.open()
1360
		foundRecord.open()
1386
1361
1387
		if set(foundRecord[udm_property]) != set(c):
1362
		if set(foundRecord[udm_property]) != set(c):
 Lines 1391-1403   def ucs_ns_record_create(s4connector, object): Link Here 
1391
			ud.debug(ud.LDAP, ud.INFO, 'ucs_ns_record_create: do not modify ns record')
1366
			ud.debug(ud.LDAP, ud.INFO, 'ucs_ns_record_create: do not modify ns record')
1392
	else:
1367
	else:
1393
		zoneDN = __get_zone_dn(s4connector, zoneName)
1368
		zoneDN = __get_zone_dn(s4connector, zoneName)
1394
1395
		superordinate = s4connector_get_superordinate('dns/ns_record', s4connector.lo, zoneDN)
1396
		ud.debug(ud.LDAP, ud.INFO, 'ucs_ns_record_create: superordinate: %s' % superordinate)
1397
1398
		position = univention.admin.uldap.position(zoneDN)
1369
		position = univention.admin.uldap.position(zoneDN)
1399
1370
1400
		newRecord = univention.admin.handlers.dns.ns_record.object(None, s4connector.lo, position, dn=None, superordinate=superordinate, attributes=[], update_zone=False)
1371
		newRecord = univention.admin.handlers.dns.ns_record.object(None, s4connector.lo, position, dn=None, attributes=[], update_zone=False)
1401
		newRecord.open()
1372
		newRecord.open()
1402
		newRecord['zone'] = relativeDomainName
1373
		newRecord['zone'] = relativeDomainName
1403
		newRecord[udm_property] = c
1374
		newRecord[udm_property] = c
 Lines 1414-1421   def ucs_ns_record_delete(s4connector, object): Link Here 
1414
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1385
	ol_filter = format_escaped('(&(relativeDomainName={0!e})(zoneName={1!e}))', relativeDomainName, zoneName)
1415
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1386
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1416
	if len(searchResult) > 0:
1387
	if len(searchResult) > 0:
1417
		superordinate = s4connector_get_superordinate('dns/ns_record', s4connector.lo, searchResult[0][0])
1388
		newRecord = univention.admin.handlers.dns.ns_record.object(None, s4connector.lo, position=None, dn=searchResult[0][0], attributes=[], update_zone=False)
1418
		newRecord = univention.admin.handlers.dns.ns_record.object(None, s4connector.lo, position=None, dn=searchResult[0][0], superordinate=superordinate, attributes=[], update_zone=False)
1419
		newRecord.open()
1389
		newRecord.open()
1420
		newRecord.delete()
1390
		newRecord.delete()
1421
	else:
1391
	else:
 Lines 1476-1484   def ucs_zone_create(s4connector, object, dns_type): Link Here 
1476
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1446
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1477
	if len(searchResult) > 0:
1447
	if len(searchResult) > 0:
1478
		if dns_type == 'forward_zone':
1448
		if dns_type == 'forward_zone':
1479
			zone = univention.admin.handlers.dns.forward_zone.object(None, s4connector.lo, position=None, dn=searchResult[0][0], superordinate=None, attributes=[])
1449
			zone = univention.admin.handlers.dns.forward_zone.object(None, s4connector.lo, position=None, dn=searchResult[0][0], attributes=[])
1480
		elif dns_type == 'reverse_zone':
1450
		elif dns_type == 'reverse_zone':
1481
			zone = univention.admin.handlers.dns.reverse_zone.object(None, s4connector.lo, position=None, dn=searchResult[0][0], superordinate=None, attributes=[])
1451
			zone = univention.admin.handlers.dns.reverse_zone.object(None, s4connector.lo, position=None, dn=searchResult[0][0], attributes=[])
1482
		zone.open()
1452
		zone.open()
1483
		udm_zone_nameservers_lower = [x.lower() for x in zone['nameserver']]
1453
		udm_zone_nameservers_lower = [x.lower() for x in zone['nameserver']]
1484
		if set(ns_lower) != set(udm_zone_nameservers_lower):
1454
		if set(ns_lower) != set(udm_zone_nameservers_lower):
 Lines 1516-1525   def mapMX(m): Link Here 
1516
		position = univention.admin.uldap.position(s4connector.property['dns'].ucs_default_dn)
1486
		position = univention.admin.uldap.position(s4connector.property['dns'].ucs_default_dn)
1517
1487
1518
		if dns_type == 'forward_zone':
1488
		if dns_type == 'forward_zone':
1519
			zone = univention.admin.handlers.dns.forward_zone.object(None, s4connector.lo, position, dn=None, superordinate=None, attributes=[])
1489
			zone = univention.admin.handlers.dns.forward_zone.object(None, s4connector.lo, position, dn=None, attributes=[])
1520
			name_key = 'zone'
1490
			name_key = 'zone'
1521
		elif dns_type == 'reverse_zone':
1491
		elif dns_type == 'reverse_zone':
1522
			zone = univention.admin.handlers.dns.reverse_zone.object(None, s4connector.lo, position, dn=None, superordinate=None, attributes=[])
1492
			zone = univention.admin.handlers.dns.reverse_zone.object(None, s4connector.lo, position, dn=None, attributes=[])
1523
			name_key = 'subnet'
1493
			name_key = 'subnet'
1524
			zoneName = univention.admin.handlers.dns.reverse_zone.unmapSubnet(zoneName)
1494
			zoneName = univention.admin.handlers.dns.reverse_zone.unmapSubnet(zoneName)
1525
		zone.open()
1495
		zone.open()
 Lines 1551-1559   def ucs_zone_delete(s4connector, object, dns_type): Link Here 
1551
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1521
	searchResult = s4connector.lo.search(filter=ol_filter, unique=True)
1552
	if len(searchResult) > 0:
1522
	if len(searchResult) > 0:
1553
		if dns_type == 'forward_zone':
1523
		if dns_type == 'forward_zone':
1554
			zone = univention.admin.handlers.dns.forward_zone.object(None, s4connector.lo, position=None, dn=searchResult[0][0], superordinate=None, attributes=[], update_zone=False)
1524
			zone = univention.admin.handlers.dns.forward_zone.object(None, s4connector.lo, position=None, dn=searchResult[0][0], attributes=[], update_zone=False)
1555
		elif dns_type == 'reverse_zone':
1525
		elif dns_type == 'reverse_zone':
1556
			zone = univention.admin.handlers.dns.reverse_zone.object(None, s4connector.lo, position=None, dn=searchResult[0][0], superordinate=None, attributes=[], update_zone=False)
1526
			zone = univention.admin.handlers.dns.reverse_zone.object(None, s4connector.lo, position=None, dn=searchResult[0][0], attributes=[], update_zone=False)
1557
		zone.open()
1527
		zone.open()
1558
		zone.delete()
1528
		zone.delete()
1559
1529
 Lines 1778-1796   def con2ucs(s4connector, key, object): Link Here 
1778
		# ignore move
1748
		# ignore move
1779
1749
1780
	return True
1750
	return True
1781
1782
1783
def s4connector_get_superordinate(module, lo, dn):
1784
	'''
1785
	We have to use our own get_superordinate function. Otherwise
1786
	identifyOne in udm will return two results
1787
	'''
1788
	super_module = univention.admin.modules.superordinate(module)
1789
	if super_module:
1790
		while dn:
1791
			attr = lo.get(dn)
1792
			for mod in univention.admin.modules.identify(dn, attr):
1793
				if mod == super_module:
1794
					return univention.admin.objects.get(super_module, None, lo, None, dn)
1795
			dn = lo.parentDn(dn)
1796
	return None

Return to bug 45068