commit ca5ea643f09d3446372c21132a5b5339bc4df0b9 Author: Florian Best Date: Tue Mar 5 18:53:07 2019 +0100 Bug #36695: fix import ldif scripts The script is now idempotent and removes all objects which exists in the ldif. Otherwise slapadd will fail without adding every object. diff --git a/test/ucs-test-tools/usr/sbin/import_ldif_with_listener b/test/ucs-test-tools/usr/sbin/import_ldif_with_listener index 35507ee92b..6ea01b014d 100755 --- a/test/ucs-test-tools/usr/sbin/import_ldif_with_listener +++ b/test/ucs-test-tools/usr/sbin/import_ldif_with_listener @@ -39,7 +39,7 @@ sambaSID="$(get_sambaSID)" prepare_ldif_for_ldapadd "$1" >$ldif -backup_and_remove_ldap_objects +backup_and_remove_ldap_objects "$ldif" ldapadd -x -D "cn=admin,$ldap_base" -y /etc/ldap.secret -f "$ldif" diff --git a/test/ucs-test-tools/usr/sbin/import_ldif_without_listener b/test/ucs-test-tools/usr/sbin/import_ldif_without_listener index b0e4abc9d1..5eb3b6cd24 100755 --- a/test/ucs-test-tools/usr/sbin/import_ldif_without_listener +++ b/test/ucs-test-tools/usr/sbin/import_ldif_without_listener @@ -39,7 +39,7 @@ sambaSID="$(get_sambaSID)" prepare_ldif_for_slapadd "$1" >$ldif -backup_and_remove_ldap_objects +backup_and_remove_ldap_objects "$ldif" stop_slapd diff --git a/test/ucs-test-tools/usr/share/ucs-test-tools/common-lib.sh b/test/ucs-test-tools/usr/share/ucs-test-tools/common-lib.sh index be39efb002..c49e8a7dc7 100644 --- a/test/ucs-test-tools/usr/share/ucs-test-tools/common-lib.sh +++ b/test/ucs-test-tools/usr/share/ucs-test-tools/common-lib.sh @@ -62,14 +62,9 @@ change_performance_settings () backup_and_remove_ldap_objects () { - for dn in "cn=Windows Hosts,cn=groups,$ldap_base" \ - "cn=Domain Users,cn=groups,$ldap_base" \ - "cn=DC Backup Hosts,cn=groups,$ldap_base" \ - "cn=DC Slave Hosts,cn=groups,$ldap_base" \ - "cn=Computers,cn=groups,$ldap_base" \ - "cn=default containers,cn=univention,$ldap_base" + grep "^dn:" "$1" | sed 's/^dn: //g' | awk '{ print length($0) " " $0; }' | sort -r -n | cut -d ' ' -f 2- | while read dn; do - univention-ldapsearch -b "$dn" >>/var/univention-backup/import-backup.ldif + univention-ldapsearch -LLLs base -b "$dn" 2>/dev/null >>/var/univention-backup/import-backup.ldif || continue ldapdelete -x -D cn=admin,$ldap_base -y /etc/ldap.secret "$dn" done }