5 if test $# -ge 1 ; then
9 . $SRCDIR/scripts/args.sh $*
11 if test "$BACKEND" != "bdb" -a "$BACKEND" != "hdb"; then
12 echo "Test only valid for back-bdb"
16 echo "running defines.sh"
17 . $SRCDIR/scripts/defines.sh
23 # - populate over ldap
24 # - perform some modifies and deleted
25 # - retrieve database over ldap and compare against expected results
28 echo "Cleaning up in $DBDIR..."
30 echo "Cleaning up in $R1REPLDIR..."
31 rm -rf $R1REPLDIR/[!C]*
32 echo "Cleaning up in $R2REPLDIR..."
33 rm -rf $R2REPLDIR/[!C]*
34 echo "Cleaning up in $P1REPLDIR..."
35 rm -rf $P1REPLDIR/[!C]*
36 echo "Cleaning up in $P2REPLDIR..."
37 rm -rf $P2REPLDIR/[!C]*
38 echo "Cleaning up in $P3REPLDIR..."
39 rm -rf $P3REPLDIR/[!C]*
41 echo "Starting master slapd on TCP/IP port $PORT..."
42 . $CONFFILTER $BACKEND $MONITORDB < $SRMASTERCONF > $DBCONF
43 $SLAPD -f $DBCONF -h $MASTERURI -d $LVL $TIMING > $MASTERLOG 2>&1 &
45 if test $WAIT != 0 ; then
50 echo "Waiting 5 seconds to wait for master to start..."
53 echo "Using ldapsearch to check that master slapd is running..."
54 for i in 0 1 2 3 4 5; do
55 $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT \
56 'objectclass=*' > /dev/null 2>&1
58 if test $RC = 0 ; then
61 echo "Waiting 5 seconds for slapd to start..."
65 echo "Using ldapadd to create the context prefix entry in the master..."
66 $LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT -w $PASSWD < \
67 $LDIFORDEREDCP > /dev/null 2>&1
69 if test $RC != 0 ; then
70 echo "ldapadd failed ($RC)!"
75 echo "Starting R1 slave slapd on TCP/IP port $R1SLAVEPORT..."
76 . $CONFFILTER $BACKEND $MONITORDB < $R1SRSLAVECONF > $R1REPLCONF
77 $SLAPD -f $R1REPLCONF -h $R1SLAVEURI -d $LVL $TIMING > $R1SLAVELOG 2>&1 &
79 if test $WAIT != 0 ; then
80 echo SLAVE R1 PID $R1SLAVEPID
84 echo "Using ldapsearch to check that R1 slave slapd is running..."
85 for i in 0 1 2 3 4 5; do
86 $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $R1SLAVEPORT \
87 'objectclass=*' > /dev/null 2>&1
89 if test $RC = 0 ; then
92 echo "Waiting 5 seconds for R1 slapd to start..."
96 echo "Waiting for the R1 slave to replicate..."
99 echo "Starting R2 slave slapd on TCP/IP port $R2SLAVEPORT..."
100 . $CONFFILTER $BACKEND $MONITORDB < $R2SRSLAVECONF > $R2REPLCONF
101 $SLAPD -f $R2REPLCONF -h $R2SLAVEURI -d $LVL $TIMING > $R2SLAVELOG 2>&1 &
103 if test $WAIT != 0 ; then
104 echo SLAVE R2 PID $R2SLAVEPID
108 echo "Using ldapsearch to check that the R2 slave slapd is running..."
109 for i in 0 1 2 3 4 5; do
110 $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $R2SLAVEPORT \
111 'objectclass=*' > /dev/null 2>&1
113 if test $RC = 0 ; then
116 echo "Waiting 5 seconds for R2 slave slapd to start..."
120 echo "Waiting for the R2 slave to replicate..."
123 echo "Starting P1 slave slapd on TCP/IP port $P1SLAVEPORT..."
124 . $CONFFILTER $BACKEND $MONITORDB < $P1SRSLAVECONF > $P1REPLCONF
125 $SLAPD -f $P1REPLCONF -h $P1SLAVEURI -d $LVL $TIMING > $P1SLAVELOG 2>&1 &
127 if test $WAIT != 0 ; then
128 echo SLAVE P1 PID $P1SLAVEPID
132 echo "Using ldapsearch to check that the P1 slave slapd is running..."
133 for i in 0 1 2 3 4 5; do
134 $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $P1SLAVEPORT \
135 'objectclass=*' > /dev/null 2>&1
137 if test $RC = 0 ; then
140 echo "Waiting 5 seconds for P1 slave slapd to start..."
144 echo "Waiting for the P1 slave to replicate..."
147 echo "Starting P2 slave slapd on TCP/IP port $P2SLAVEPORT..."
148 . $CONFFILTER $BACKEND $MONITORDB < $P2SRSLAVECONF > $P2REPLCONF
149 $SLAPD -f $P2REPLCONF -h $P2SLAVEURI -d $LVL $TIMING > $P2SLAVELOG 2>&1 &
151 if test $WAIT != 0 ; then
152 echo SLAVE P2 PID $P2SLAVEPID
156 echo "Using ldapsearch to check that the P2 slave slapd is running..."
157 for i in 0 1 2 3 4 5; do
158 $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $P2SLAVEPORT \
159 'objectclass=*' > /dev/null 2>&1
161 if test $RC = 0 ; then
164 echo "Waiting 5 seconds for P2 slave slapd to start..."
168 echo "Starting P3 slave slapd on TCP/IP port $P3SLAVEPORT..."
169 . $CONFFILTER $BACKEND $MONITORDB < $P3SRSLAVECONF > $P3REPLCONF
170 $SLAPD -f $P3REPLCONF -h $P3SLAVEURI -d $LVL $TIMING > $P3SLAVELOG 2>&1 &
172 if test $WAIT != 0 ; then
173 echo SLAVE P3 PID $P3SLAVEPID
177 echo "Using ldapsearch to check that the P3 slave slapd is running..."
178 for i in 0 1 2 3 4 5; do
179 $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $P3SLAVEPORT \
180 'objectclass=*' > /dev/null 2>&1
182 if test $RC = 0 ; then
185 echo "Waiting 5 seconds for P3 slave slapd to start..."
189 echo "Using ldapadd to populate the master directory..."
190 $LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT -w $PASSWD < \
191 $LDIFORDEREDNOCP > /dev/null 2>&1
193 if test $RC != 0 ; then
194 echo "ldapadd failed ($RC)!"
195 kill -HUP $PID $R1SLAVEPID $R2SLAVEPID $P1SLAVEPID $P2SLAVEPID $P3SLAVEPID
199 echo "Waiting 30 seconds for syncrepl to receive changes..."
202 echo "Using ldapmodify to modify master directory..."
205 # Do some modifications
208 $LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT -w $PASSWD > \
209 $TESTOUT 2>&1 << EOMODS
210 dn: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Michigan, c=US
221 dn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
227 dn: cn=ITD Staff,ou=Groups,o=University of Michigan,c=US
230 member: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
231 member: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
234 member: cn=Dorothy Stevens, ou=Alumni Association, ou=People, o=University of Michigan, c=US
235 member: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Michigan, c=US
237 dn: cn=All Staff,ou=Groups,o=University of Michigan,c=US
241 dn: cn=Gern Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
243 objectclass: OpenLDAPperson
247 title: Chief Investigator, ITD
248 postaladdress: ITD $ 535 W. William St $ Ann Arbor, MI 48103
249 seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US
251 homepostaladdress: 844 Brown St. Apt. 4 $ Ann Arbor, MI 48104
252 description: Very odd
253 facsimiletelephonenumber: +1 313 555 7557
254 telephonenumber: +1 313 555 8343
255 mail: gjensen@mailgw.example.com
256 homephone: +1 313 555 8844
258 dn: ou=Retired, ou=People, o=University of Michigan, c=US
260 objectclass: organizationalUnit
263 dn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
265 objectclass: OpenLDAPperson
266 cn: Rosco P. Coltrane
270 dn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
272 newrdn: cn=Rosco P. Coltrane
274 newsuperior: ou=Retired, ou=People, o=University of Michigan, c=US
276 dn: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
281 echo "Waiting 30 seconds for syncrepl to receive changes..."
284 echo "Using ldapsearch to read all the entries from the master..."
285 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT \
286 'objectclass=*' > $MASTEROUT 2>&1
289 if test $RC != 0 ; then
290 echo "ldapsearch failed at master ($RC)!"
291 kill -HUP $PID $R1SLAVEPID $R2SLAVEPID $P1SLAVEPID $P2SLAVEPID $P3SLAVEPID
295 echo "Using ldapsearch to read all the entries from the R1 slave..."
296 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $R1SLAVEPORT \
297 'objectclass=*' > $R1SLAVEOUT 2>&1
300 if test $RC != 0 ; then
301 echo "ldapsearch failed at R1 slave ($RC)!"
302 kill -HUP $PID $R1SLAVEPID $R2SLAVEPID $P1SLAVEPID $P2SLAVEPID $P3SLAVEPID
306 echo "Using ldapsearch to read all the entries from the R2 slave..."
307 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $R2SLAVEPORT \
308 'objectclass=*' > $R2SLAVEOUT 2>&1
311 if test $RC != 0 ; then
312 echo "ldapsearch failed at R2 slave ($RC)!"
313 kill -HUP $PID $R1SLAVEPID $R2SLAVEPID $P1SLAVEPID $P2SLAVEPID $P3SLAVEPID
317 echo "Using ldapsearch to read all the entries from the P1 slave..."
318 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $P1SLAVEPORT \
319 'objectclass=*' > $P1SLAVEOUT 2>&1
322 if test $RC != 0 ; then
323 echo "ldapsearch failed at R1 slave ($RC)!"
324 kill -HUP $PID $R1SLAVEPID $R2SLAVEPID $P1SLAVEPID $P2SLAVEPID $P3SLAVEPID
328 echo "Using ldapsearch to read all the entries from the P2 slave..."
329 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $P2SLAVEPORT \
330 'objectclass=*' > $P2SLAVEOUT 2>&1
333 if test $RC != 0 ; then
334 echo "ldapsearch failed at R2 slave ($RC)!"
335 kill -HUP $PID $R1SLAVEPID $R2SLAVEPID $P1SLAVEPID $P2SLAVEPID $P3SLAVEPID
339 echo "Using ldapsearch to read all the entries from the P3 slave..."
340 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $P3SLAVEPORT \
341 'objectclass=*' > $P3SLAVEOUT 2>&1
344 if test $RC != 0 ; then
345 echo "ldapsearch failed at R2 slave ($RC)!"
346 kill -HUP $PID $R1SLAVEPID $R2SLAVEPID $P1SLAVEPID $P2SLAVEPID $P3SLAVEPID
350 kill -HUP $PID $R1SLAVEPID $R2SLAVEPID $P1SLAVEPID $P2SLAVEPID $P3SLAVEPID
359 echo "Filtering master ldapsearch results..."
360 . $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
361 echo "Filtering R1 slave ldapsearch results..."
362 . $LDIFFILTER < $R1LDIF > $R1LDIFFLT
363 echo "Filtering R2 slave ldapsearch results..."
364 . $LDIFFILTER < $R2LDIF > $R2LDIFFLT
365 echo "Filtering P1 slave ldapsearch results..."
366 . $LDIFFILTER < $P1LDIF > $P1LDIFFLT
367 echo "Filtering P2 slave ldapsearch results..."
368 . $LDIFFILTER < $P2LDIF > $P2LDIFFLT
369 echo "Filtering P3 slave ldapsearch results..."
370 . $LDIFFILTER < $P3LDIF > $P3LDIFFLT
372 echo "Comparing retrieved entries from master and R1 slave..."
373 $CMP $SEARCHFLT $R1LDIFFLT > $CMPOUT
375 if test $? != 0 ; then
376 echo "test failed - master and R1 slave databases differ"
380 echo "Comparing retrieved entries from master and R2 slave..."
381 $CMP $SEARCHFLT $R2LDIFFLT > $CMPOUT
383 if test $? != 0 ; then
384 echo "test failed - master and R2 slave databases differ"
388 echo "Comparing retrieved entries from master and P1 slave..."
389 $CMP $SEARCHFLT $P1LDIFFLT > $CMPOUT
391 if test $? != 0 ; then
392 echo "test failed - master and P1 slave databases differ"
396 echo "Comparing retrieved entries from master and P2 slave..."
397 $CMP $SEARCHFLT $P2LDIFFLT > $CMPOUT
399 if test $? != 0 ; then
400 echo "test failed - master and P2 slave databases differ"
404 echo "Comparing retrieved entries from master and P3 slave..."
405 $CMP $SEARCHFLT $P2LDIFFLT > $CMPOUT
407 if test $? != 0 ; then
408 echo "test failed - master and P3 slave databases differ"
412 echo ">>>>> Test succeeded"