Index: 96univention-samba4.inst =================================================================== --- 96univention-samba4.inst (Revision 49581) +++ 96univention-samba4.inst (Arbeitskopie) @@ -464,13 +464,24 @@ set_default_fACL /var/lib/samba/sysvol } -get_s4connector_dc () { - univention-ldapsearch "(&(univentionService=S4 Connector)(objectClass=univentionDomainController))" cn | ldapsearch-wrapper | sed -n 's/^cn: \(.*\)/\1/p' +get_available_s4connector_dc () { + local s4connector_dc + local shortlist + s4connector_dc=$(univention-ldapsearch "(&(univentionService=S4 Connector)(objectClass=univentionDomainController))" cn | ldapsearch-wrapper | sed -n 's/^cn: \(.*\)/\1/p') + for dc in "${s4connector_dc[@]}"; do + if samba-tool drs showrepl "$dc" >/dev/null 2>&1; then + shortlist="${shortlist:+$shortlist }$dc" + fi + done + if [ "${#shortlist[@]}" -gt 1 ]; then + echo "ERROR: More than one S4 Connector hosts available: $s4connector_dc" 1>&2 + echo exit 1 + fi + echo "$shortlist" } wait_until_dc_was_replicated_to_connector_dc () { - s4connector_dc="$(get_s4connector_dc)" - + s4connector_dc=$(get_available_s4connector_dc) if [ -z "$s4connector_dc" ]; then echo "WARNING: Failed to search for S4 connector DC" return