Home | History | Annotate | Line # | Download | only in scripts
      1       1.1     lukem #! /bin/sh
      2   1.1.1.4      tron # $OpenLDAP$
      3       1.1     lukem ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
      4       1.1     lukem ##
      5  1.1.1.10  christos ## Copyright 1998-2024 The OpenLDAP Foundation.
      6       1.1     lukem ## All rights reserved.
      7       1.1     lukem ##
      8       1.1     lukem ## Redistribution and use in source and binary forms, with or without
      9       1.1     lukem ## modification, are permitted only as authorized by the OpenLDAP
     10       1.1     lukem ## Public License.
     11       1.1     lukem ##
     12       1.1     lukem ## A copy of this license is available in the file LICENSE in the
     13       1.1     lukem ## top-level directory of the distribution or, alternatively, at
     14       1.1     lukem ## <http://www.OpenLDAP.org/license.html>.
     15       1.1     lukem 
     16       1.1     lukem echo "running defines.sh"
     17       1.1     lukem . $SRCDIR/scripts/defines.sh
     18       1.1     lukem 
     19       1.1     lukem if test $SYNCPROV = syncprovno; then 
     20       1.1     lukem 	echo "Syncrepl provider overlay not available, test skipped"
     21       1.1     lukem 	exit 0
     22       1.1     lukem fi 
     23       1.1     lukem 
     24       1.1     lukem PRODIR=$TESTDIR/pro
     25   1.1.1.2     lukem CONDIR=$TESTDIR/con1
     26       1.1     lukem DBPRO=$PRODIR/db
     27       1.1     lukem DBCON=$CONDIR/db
     28       1.1     lukem CFPRO=$PRODIR/slapd.d
     29       1.1     lukem CFCON=$CONDIR/slapd.d
     30       1.1     lukem 
     31       1.1     lukem mkdir -p $TESTDIR $PRODIR $CONDIR $DBPRO $DBCON $CFPRO $CFCON
     32       1.1     lukem 
     33       1.1     lukem $SLAPPASSWD -g -n >$CONFIGPWF
     34       1.1     lukem 
     35   1.1.1.2     lukem if test x"$SYNCMODE" = x ; then
     36   1.1.1.2     lukem 	SYNCMODE=rp
     37   1.1.1.2     lukem fi
     38   1.1.1.2     lukem case "$SYNCMODE" in
     39   1.1.1.2     lukem 	ro)
     40   1.1.1.2     lukem 		SYNCTYPE="type=refreshOnly interval=00:00:00:03"
     41   1.1.1.2     lukem 		;;
     42   1.1.1.2     lukem 	rp)
     43   1.1.1.2     lukem 		SYNCTYPE="type=refreshAndPersist"
     44   1.1.1.2     lukem 		;;
     45   1.1.1.2     lukem 	*)
     46   1.1.1.2     lukem 		echo "unknown sync mode $SYNCMODE"
     47   1.1.1.2     lukem 		exit 1;
     48   1.1.1.2     lukem 		;;
     49   1.1.1.2     lukem esac
     50   1.1.1.2     lukem 
     51       1.1     lukem #
     52       1.1     lukem # Test replication of dynamic config:
     53   1.1.1.4      tron # - start provider
     54       1.1     lukem # - start consumer
     55       1.1     lukem # - configure over ldap
     56       1.1     lukem # - populate over ldap
     57       1.1     lukem # - configure syncrepl over ldap
     58       1.1     lukem # - retrieve database over ldap and compare against expected results
     59       1.1     lukem #
     60       1.1     lukem 
     61   1.1.1.4      tron echo "Starting provider slapd on TCP/IP port $PORT1..."
     62   1.1.1.9  christos . $CONFFILTER $BACKEND < $DYNAMICCONF > $CONFLDIF
     63       1.1     lukem $SLAPADD -F $CFPRO -n 0 -l $CONFLDIF
     64  1.1.1.10  christos RC=$?
     65  1.1.1.10  christos if test $RC != 0 ; then
     66  1.1.1.10  christos 	echo "slapadd failed ($RC)!"
     67  1.1.1.10  christos 	exit $RC
     68  1.1.1.10  christos fi
     69  1.1.1.10  christos 
     70       1.1     lukem cd $PRODIR
     71   1.1.1.9  christos $SLAPD -F ./slapd.d -h $URI1 -d $LVL > $LOG1 2>&1 &
     72       1.1     lukem PID=$!
     73       1.1     lukem if test $WAIT != 0 ; then
     74       1.1     lukem     echo PID $PID
     75       1.1     lukem     read foo
     76       1.1     lukem fi
     77       1.1     lukem KILLPIDS="$PID"
     78       1.1     lukem cd $TESTWD
     79       1.1     lukem 
     80       1.1     lukem sleep 1
     81       1.1     lukem 
     82   1.1.1.4      tron echo "Using ldapsearch to check that provider slapd is running..."
     83       1.1     lukem for i in 0 1 2 3 4 5; do
     84       1.1     lukem 	$LDAPSEARCH -s base -b "" -H $URI1 \
     85       1.1     lukem 		'objectclass=*' > /dev/null 2>&1
     86       1.1     lukem 	RC=$?
     87       1.1     lukem 	if test $RC = 0 ; then
     88       1.1     lukem 		break
     89       1.1     lukem 	fi
     90       1.1     lukem 	echo "Waiting 5 seconds for slapd to start..."
     91       1.1     lukem 	sleep 5
     92       1.1     lukem done
     93       1.1     lukem 
     94       1.1     lukem if test $RC != 0 ; then
     95       1.1     lukem 	echo "ldapsearch failed ($RC)!"
     96       1.1     lukem 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
     97       1.1     lukem 	exit $RC
     98       1.1     lukem fi
     99       1.1     lukem 
    100   1.1.1.4      tron echo "Inserting syncprov overlay on provider..."
    101       1.1     lukem if [ "$SYNCPROV" = syncprovmod ]; then
    102       1.1     lukem 	$LDAPADD -D cn=config -H $URI1 -y $CONFIGPWF <<EOF > $TESTOUT 2>&1
    103       1.1     lukem dn: cn=module,cn=config
    104       1.1     lukem objectClass: olcModuleList
    105       1.1     lukem cn: module
    106   1.1.1.4      tron olcModulePath: $TESTWD/../servers/slapd/overlays
    107       1.1     lukem olcModuleLoad: syncprov.la
    108       1.1     lukem EOF
    109       1.1     lukem 	RC=$?
    110       1.1     lukem 	if test $RC != 0 ; then
    111       1.1     lukem 		echo "ldapadd failed for moduleLoad ($RC)!"
    112       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    113       1.1     lukem 		exit $RC
    114       1.1     lukem 	fi
    115       1.1     lukem fi
    116       1.1     lukem read CONFIGPW < $CONFIGPWF
    117       1.1     lukem $LDAPMODIFY -D cn=config -H $URI1 -y $CONFIGPWF <<EOF >> $TESTOUT 2>&1
    118       1.1     lukem dn: olcDatabase={0}config,cn=config
    119       1.1     lukem changetype: modify
    120       1.1     lukem add: olcSyncRepl
    121       1.1     lukem olcSyncRepl: rid=001 provider=$URI1 binddn="cn=config" bindmethod=simple
    122   1.1.1.2     lukem   credentials=$CONFIGPW searchbase="cn=config" type=refreshAndPersist
    123   1.1.1.2     lukem   retry="3 5 300 5" timeout=3
    124       1.1     lukem -
    125       1.1     lukem add: olcUpdateRef
    126       1.1     lukem olcUpdateRef: $URI1
    127       1.1     lukem 
    128       1.1     lukem dn: olcOverlay=syncprov,olcDatabase={0}config,cn=config
    129       1.1     lukem changetype: add
    130       1.1     lukem objectClass: olcOverlayConfig
    131       1.1     lukem objectClass: olcSyncProvConfig
    132       1.1     lukem olcOverlay: syncprov
    133       1.1     lukem EOF
    134       1.1     lukem RC=$?
    135       1.1     lukem if test $RC != 0 ; then
    136       1.1     lukem 	echo "ldapmodify failed for syncrepl config ($RC)!"
    137       1.1     lukem 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    138       1.1     lukem 	exit $RC
    139       1.1     lukem fi
    140       1.1     lukem 
    141       1.1     lukem echo "Starting consumer slapd on TCP/IP port $PORT2..."
    142       1.1     lukem $SLAPADD -F $CFCON -n 0 -l $CONFLDIF
    143  1.1.1.10  christos RC=$?
    144  1.1.1.10  christos if test $RC != 0 ; then
    145  1.1.1.10  christos 	echo "slapadd failed ($RC)!"
    146  1.1.1.10  christos 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    147  1.1.1.10  christos 	exit $RC
    148  1.1.1.10  christos fi
    149  1.1.1.10  christos 
    150       1.1     lukem cd $CONDIR
    151   1.1.1.9  christos $SLAPD -F ./slapd.d -h $URI2 -d $LVL > $LOG2 2>&1 &
    152   1.1.1.9  christos CONSUMERPID=$!
    153       1.1     lukem if test $WAIT != 0 ; then
    154   1.1.1.9  christos     echo CONSUMERPID $CONSUMERPID
    155       1.1     lukem     read foo
    156       1.1     lukem fi
    157   1.1.1.9  christos KILLPIDS="$KILLPIDS $CONSUMERPID"
    158       1.1     lukem cd $TESTWD
    159       1.1     lukem 
    160       1.1     lukem sleep 1
    161       1.1     lukem 
    162       1.1     lukem echo "Using ldapsearch to check that consumer slapd is running..."
    163       1.1     lukem for i in 0 1 2 3 4 5; do
    164       1.1     lukem 	$LDAPSEARCH -s base -b "" -H $URI2 \
    165       1.1     lukem 		'objectclass=*' > /dev/null 2>&1
    166       1.1     lukem 	RC=$?
    167       1.1     lukem 	if test $RC = 0 ; then
    168       1.1     lukem 		break
    169       1.1     lukem 	fi
    170       1.1     lukem 	echo "Waiting 5 seconds for slapd to start..."
    171       1.1     lukem 	sleep 5
    172       1.1     lukem done
    173       1.1     lukem 
    174       1.1     lukem if test $RC != 0 ; then
    175       1.1     lukem 	echo "ldapsearch failed ($RC)!"
    176       1.1     lukem 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    177       1.1     lukem 	exit $RC
    178       1.1     lukem fi
    179       1.1     lukem 
    180       1.1     lukem echo "Configuring syncrepl on consumer..."
    181       1.1     lukem $LDAPMODIFY -D cn=config -H $URI2 -y $CONFIGPWF <<EOF >>$TESTOUT 2>&1
    182       1.1     lukem dn: olcDatabase={0}config,cn=config
    183       1.1     lukem changetype: modify
    184       1.1     lukem add: olcSyncRepl
    185       1.1     lukem olcSyncRepl: rid=001 provider=$URI1 binddn="cn=config" bindmethod=simple
    186   1.1.1.2     lukem   credentials=$CONFIGPW searchbase="cn=config" type=refreshAndPersist
    187   1.1.1.2     lukem   retry="3 5 300 5" timeout=3
    188       1.1     lukem -
    189       1.1     lukem add: olcUpdateRef
    190       1.1     lukem olcUpdateRef: $URI1
    191       1.1     lukem EOF
    192       1.1     lukem 
    193   1.1.1.2     lukem echo "Waiting $SLEEP1 seconds for syncrepl to receive changes..."
    194   1.1.1.2     lukem sleep $SLEEP1
    195       1.1     lukem 
    196       1.1     lukem echo "Using ldapsearch to check that syncrepl received config changes..."
    197       1.1     lukem RC=32
    198       1.1     lukem for i in 0 1 2 3 4 5; do
    199       1.1     lukem 	RESULT=`$LDAPSEARCH -H $URI2 -D cn=config -y $CONFIGPWF \
    200       1.1     lukem 		-s base -b "olcDatabase={0}config,cn=config" \
    201       1.1     lukem 		'(olcUpdateRef=*)' 2>&1 | awk '/^dn:/ {print "OK"}'`
    202       1.1     lukem 	if test "x$RESULT" = "xOK" ; then
    203       1.1     lukem 		RC=0
    204       1.1     lukem 		break
    205       1.1     lukem 	fi
    206   1.1.1.2     lukem 	echo "Waiting $SLEEP1 seconds for syncrepl to receive changes..."
    207   1.1.1.2     lukem 	sleep $SLEEP1
    208       1.1     lukem done
    209       1.1     lukem 
    210       1.1     lukem if test $RC != 0 ; then
    211       1.1     lukem 	echo "ldapsearch failed ($RC)!"
    212       1.1     lukem 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    213       1.1     lukem 	exit $RC
    214       1.1     lukem fi
    215       1.1     lukem 
    216   1.1.1.4      tron echo "Adding schema and databases on provider..."
    217       1.1     lukem $LDAPADD -D cn=config -H $URI1 -y $CONFIGPWF <<EOF >>$TESTOUT 2>&1
    218       1.1     lukem include: file://$ABS_SCHEMADIR/core.ldif
    219       1.1     lukem 
    220       1.1     lukem include: file://$ABS_SCHEMADIR/cosine.ldif
    221       1.1     lukem 
    222       1.1     lukem include: file://$ABS_SCHEMADIR/inetorgperson.ldif
    223       1.1     lukem 
    224       1.1     lukem include: file://$ABS_SCHEMADIR/openldap.ldif
    225       1.1     lukem 
    226       1.1     lukem include: file://$ABS_SCHEMADIR/nis.ldif
    227       1.1     lukem EOF
    228       1.1     lukem RC=$?
    229       1.1     lukem if test $RC != 0 ; then
    230       1.1     lukem 	echo "ldapadd failed for schema config ($RC)!"
    231       1.1     lukem 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    232       1.1     lukem 	exit $RC
    233       1.1     lukem fi
    234       1.1     lukem 
    235   1.1.1.3      adam nullExclude="" nullOK=""
    236   1.1.1.3      adam test $BACKEND = null && nullExclude="# " nullOK="OK"
    237   1.1.1.3      adam 
    238       1.1     lukem if [ "$BACKENDTYPE" = mod ]; then
    239       1.1     lukem 	$LDAPADD -D cn=config -H $URI1 -y $CONFIGPWF <<EOF >>$TESTOUT 2>&1
    240       1.1     lukem dn: cn=module,cn=config
    241       1.1     lukem objectClass: olcModuleList
    242       1.1     lukem cn: module
    243   1.1.1.4      tron olcModulePath: $TESTWD/../servers/slapd/back-$BACKEND
    244       1.1     lukem olcModuleLoad: back_$BACKEND.la
    245       1.1     lukem EOF
    246       1.1     lukem 	RC=$?
    247       1.1     lukem 	if test $RC != 0 ; then
    248       1.1     lukem 		echo "ldapadd failed for backend config ($RC)!"
    249       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    250       1.1     lukem 		exit $RC
    251       1.1     lukem 	fi
    252       1.1     lukem fi
    253       1.1     lukem 
    254       1.1     lukem $LDAPADD -D cn=config -H $URI1 -y $CONFIGPWF <<EOF >>$TESTOUT 2>&1
    255       1.1     lukem dn: olcDatabase={1}$BACKEND,cn=config
    256       1.1     lukem objectClass: olcDatabaseConfig
    257   1.1.1.3      adam ${nullExclude}objectClass: olc${BACKEND}Config
    258       1.1     lukem olcDatabase: {1}$BACKEND
    259       1.1     lukem olcSuffix: $BASEDN
    260   1.1.1.3      adam ${nullExclude}olcDbDirectory: ./db
    261       1.1     lukem olcRootDN: $MANAGERDN
    262       1.1     lukem olcRootPW: $PASSWD
    263       1.1     lukem olcSyncRepl: rid=002 provider=$URI1 binddn="$MANAGERDN" bindmethod=simple
    264   1.1.1.2     lukem   credentials=$PASSWD searchbase="$BASEDN" $SYNCTYPE
    265   1.1.1.2     lukem   retry="3 5 300 5" timeout=3
    266       1.1     lukem olcUpdateRef: $URI1
    267       1.1     lukem 
    268       1.1     lukem dn: olcOverlay=syncprov,olcDatabase={1}${BACKEND},cn=config
    269       1.1     lukem changetype: add
    270       1.1     lukem objectClass: olcOverlayConfig
    271       1.1     lukem objectClass: olcSyncProvConfig
    272       1.1     lukem olcOverlay: syncprov
    273       1.1     lukem EOF
    274       1.1     lukem RC=$?
    275       1.1     lukem if test $RC != 0 ; then
    276       1.1     lukem 	echo "ldapadd failed for database config ($RC)!"
    277       1.1     lukem 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    278       1.1     lukem 	exit $RC
    279       1.1     lukem fi
    280       1.1     lukem 
    281   1.1.1.4      tron if test $INDEXDB = indexdb ; then
    282   1.1.1.2     lukem 	$LDAPMODIFY -D cn=config -H $URI1 -y $CONFIGPWF <<EOF >>$TESTOUT 2>&1
    283   1.1.1.2     lukem dn: olcDatabase={1}$BACKEND,cn=config
    284   1.1.1.2     lukem changetype: modify
    285   1.1.1.2     lukem add: olcDbIndex
    286   1.1.1.2     lukem olcDbIndex: objectClass,entryUUID,entryCSN eq
    287   1.1.1.2     lukem olcDbIndex: cn,uid pres,eq,sub
    288   1.1.1.2     lukem EOF
    289   1.1.1.2     lukem 	RC=$?
    290   1.1.1.2     lukem 	if test $RC != 0 ; then
    291   1.1.1.2     lukem 		echo "ldapadd modify for database config ($RC)!"
    292   1.1.1.2     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    293   1.1.1.2     lukem 		exit $RC
    294   1.1.1.2     lukem 	fi
    295   1.1.1.4      tron fi
    296   1.1.1.2     lukem 
    297   1.1.1.4      tron echo "Using ldapadd to populate provider..."
    298       1.1     lukem $LDAPADD -D "$MANAGERDN" -H $URI1 -w $PASSWD -f $LDIFORDERED \
    299       1.1     lukem 	>> $TESTOUT 2>&1
    300       1.1     lukem RC=$?
    301       1.1     lukem if test $RC != 0 ; then
    302       1.1     lukem 	echo "ldapadd failed for database config ($RC)!"
    303       1.1     lukem 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    304       1.1     lukem 	exit $RC
    305       1.1     lukem fi
    306       1.1     lukem 
    307   1.1.1.2     lukem echo "Waiting $SLEEP1 seconds for syncrepl to receive changes..."
    308   1.1.1.2     lukem sleep $SLEEP1
    309       1.1     lukem 
    310       1.1     lukem echo "Using ldapsearch to check that syncrepl received database changes..."
    311       1.1     lukem RC=32
    312       1.1     lukem for i in 0 1 2 3 4 5; do
    313       1.1     lukem 	RESULT=`$LDAPSEARCH -H $URI2 \
    314       1.1     lukem 		-s base -b "cn=Ursula Hampster,ou=Alumni Association,ou=People,dc=example,dc=com" \
    315       1.1     lukem 		'(objectClass=*)' 2>&1 | awk '/^dn:/ {print "OK"}'`
    316   1.1.1.3      adam 	if test "x$RESULT$nullOK" = "xOK" ; then
    317       1.1     lukem 		RC=0
    318       1.1     lukem 		break
    319       1.1     lukem 	fi
    320   1.1.1.2     lukem 	echo "Waiting $SLEEP1 seconds for syncrepl to receive changes..."
    321   1.1.1.2     lukem 	sleep $SLEEP1
    322       1.1     lukem done
    323       1.1     lukem 
    324       1.1     lukem if test $RC != 0 ; then
    325       1.1     lukem 	echo "ldapsearch failed ($RC)!"
    326       1.1     lukem 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    327       1.1     lukem 	exit $RC
    328       1.1     lukem fi
    329       1.1     lukem 
    330   1.1.1.4      tron echo "Replacing olcSyncrepl on provider..."
    331   1.1.1.2     lukem $LDAPMODIFY -D cn=config -H $URI1 -y $CONFIGPWF <<EOF >> $TESTOUT 2>&1
    332   1.1.1.2     lukem dn: olcDatabase={0}config,cn=config
    333   1.1.1.2     lukem changetype: modify
    334   1.1.1.2     lukem replace: olcSyncRepl
    335   1.1.1.9  christos olcSyncRepl: rid=003 provider=$URI1 binddn="cn=config" bindmethod=simple
    336   1.1.1.2     lukem   credentials=$CONFIGPW searchbase="cn=config" type=refreshAndPersist
    337   1.1.1.2     lukem   retry="3 5 300 5" timeout=3
    338   1.1.1.2     lukem EOF
    339   1.1.1.2     lukem echo "Waiting $SLEEP1 seconds for syncrepl to receive changes..."
    340   1.1.1.2     lukem sleep $SLEEP1
    341   1.1.1.2     lukem 
    342   1.1.1.4      tron echo "Using ldapsearch to read config from the provider..."
    343       1.1     lukem $LDAPSEARCH -b cn=config -D cn=config -H $URI1 -y $CONFIGPWF  \
    344   1.1.1.9  christos 	'objectclass=*' > $PROVIDEROUT 2>&1
    345       1.1     lukem RC=$?
    346       1.1     lukem 
    347       1.1     lukem if test $RC != 0 ; then
    348   1.1.1.4      tron 	echo "ldapsearch failed at provider ($RC)!"
    349       1.1     lukem 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    350       1.1     lukem 	exit $RC
    351       1.1     lukem fi
    352       1.1     lukem 
    353       1.1     lukem echo "Using ldapsearch to read config from the consumer..."
    354       1.1     lukem $LDAPSEARCH -b cn=config -D cn=config -H $URI2 -y $CONFIGPWF \
    355   1.1.1.9  christos 	'objectclass=*' > $CONSUMEROUT 2>&1
    356       1.1     lukem RC=$?
    357       1.1     lukem 
    358       1.1     lukem if test $RC != 0 ; then
    359       1.1     lukem 	echo "ldapsearch failed at consumer ($RC)!"
    360       1.1     lukem 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    361       1.1     lukem 	exit $RC
    362       1.1     lukem fi
    363       1.1     lukem 
    364   1.1.1.4      tron echo "Filtering provider results..."
    365   1.1.1.9  christos $LDIFFILTER < $PROVIDEROUT > $PROVIDERFLT
    366       1.1     lukem echo "Filtering consumer results..."
    367   1.1.1.9  christos $LDIFFILTER < $CONSUMEROUT > $CONSUMERFLT
    368       1.1     lukem 
    369   1.1.1.4      tron echo "Comparing retrieved configs from provider and consumer..."
    370   1.1.1.9  christos $CMP $PROVIDERFLT $CONSUMERFLT > $CMPOUT
    371       1.1     lukem 
    372       1.1     lukem if test $? != 0 ; then
    373   1.1.1.4      tron 	echo "test failed - provider and consumer configs differ"
    374       1.1     lukem 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    375       1.1     lukem 	exit 1
    376       1.1     lukem fi
    377       1.1     lukem 
    378   1.1.1.4      tron echo "Using ldapsearch to read all the entries from the provider..."
    379       1.1     lukem $LDAPSEARCH -S "" -b "$BASEDN" -D "$MANAGERDN" -H $URI1 -w $PASSWD  \
    380   1.1.1.9  christos 	'objectclass=*' > $PROVIDEROUT 2>&1
    381       1.1     lukem RC=$?
    382       1.1     lukem 
    383       1.1     lukem if test $RC != 0 ; then
    384   1.1.1.4      tron 	echo "ldapsearch failed at provider ($RC)!"
    385       1.1     lukem 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    386       1.1     lukem 	exit $RC
    387       1.1     lukem fi
    388       1.1     lukem 
    389       1.1     lukem echo "Using ldapsearch to read all the entries from the consumer..."
    390       1.1     lukem $LDAPSEARCH -S "" -b "$BASEDN" -D "$MANAGERDN" -H $URI2 -w $PASSWD  \
    391   1.1.1.9  christos 	'objectclass=*' > $CONSUMEROUT 2>&1
    392       1.1     lukem RC=$?
    393       1.1     lukem 
    394       1.1     lukem if test $RC != 0 ; then
    395       1.1     lukem 	echo "ldapsearch failed at consumer ($RC)!"
    396       1.1     lukem 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    397       1.1     lukem 	exit $RC
    398       1.1     lukem fi
    399       1.1     lukem 
    400       1.1     lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
    401       1.1     lukem 
    402   1.1.1.4      tron echo "Filtering provider results..."
    403   1.1.1.9  christos $LDIFFILTER < $PROVIDEROUT > $PROVIDERFLT
    404       1.1     lukem echo "Filtering consumer results..."
    405   1.1.1.9  christos $LDIFFILTER < $CONSUMEROUT > $CONSUMERFLT
    406       1.1     lukem 
    407   1.1.1.4      tron echo "Comparing retrieved entries from provider and consumer..."
    408   1.1.1.9  christos $CMP $PROVIDERFLT $CONSUMERFLT > $CMPOUT
    409       1.1     lukem 
    410       1.1     lukem if test $? != 0 ; then
    411   1.1.1.4      tron 	echo "test failed - provider and consumer databases differ"
    412       1.1     lukem 	exit 1
    413       1.1     lukem fi
    414       1.1     lukem 
    415       1.1     lukem echo ">>>>> Test succeeded"
    416       1.1     lukem 
    417       1.1     lukem test $KILLSERVERS != no && wait
    418       1.1     lukem 
    419       1.1     lukem exit 0
    420