5 if test $# -ge 1 ; then
9 . $SRCDIR/scripts/args.sh $*
11 echo "running defines.sh"
12 . $SRCDIR/scripts/defines.sh
18 # - populate over ldap
19 # - perform some modifies and deleted
20 # - retrieve database over ldap and compare against expected results
23 echo "Cleaning up in $DBDIR..."
25 echo "Resetting $R1REPLDIR..."
28 echo "Resetting $R2REPLDIR..."
31 echo "Resetting $P1REPLDIR..."
34 echo "Resetting $P2REPLDIR..."
37 echo "Resetting $P3REPLDIR..."
42 if test $BACKEND = ldbm; then
45 echo "Starting master slapd on TCP/IP port $PORT..."
46 . $CONFFILTER $BACKEND $MONITORDB < $SRMASTERCONF > $DBCONF
47 $SLAPD -f $DBCONF -h $MASTERURI -d $LVL $TIMING > $MASTERLOG 2>&1 &
49 if test $WAIT != 0 ; then
55 echo "Waiting 5 seconds to wait for master to start..."
58 echo "Using ldapsearch to check that master slapd is running..."
59 for i in 0 1 2 3 4 5; do
60 $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT \
61 'objectclass=*' > /dev/null 2>&1
63 if test $RC = 0 ; then
66 echo "Waiting 5 seconds for slapd to start..."
70 echo "Using ldapadd to create the context prefix entry in the master..."
71 $LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT -w $PASSWD < \
72 $LDIFORDEREDCP > /dev/null 2>&1
74 if test $RC != 0 ; then
75 echo "ldapadd failed ($RC)!"
82 echo "Starting R1 slave slapd on TCP/IP port $R1SLAVEPORT..."
83 . $CONFFILTER $BACKEND $MONITORDB < $R1SRSLAVECONF > $R1REPLCONF
84 $SLAPD -f $R1REPLCONF -h $R1SLAVEURI -d $LVL $TIMING > $R1SLAVELOG 2>&1 &
86 if test $WAIT != 0 ; then
87 echo SLAVE R1 PID $R1SLAVEPID
92 echo "Using ldapsearch to check that R1 slave slapd is running..."
93 for i in 0 1 2 3 4 5; do
94 $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $R1SLAVEPORT \
95 'objectclass=*' > /dev/null 2>&1
97 if test $RC = 0 ; then
100 echo "Waiting 5 seconds for R1 slapd to start..."
104 echo "Waiting for the R1 slave to replicate..."
107 echo "Starting R2 slave slapd on TCP/IP port $R2SLAVEPORT..."
108 . $CONFFILTER $BACKEND $MONITORDB < $R2SRSLAVECONF > $R2REPLCONF
109 $SLAPD -f $R2REPLCONF -h $R2SLAVEURI -d $LVL $TIMING > $R2SLAVELOG 2>&1 &
111 if test $WAIT != 0 ; then
112 echo SLAVE R2 PID $R2SLAVEPID
116 echo "Using ldapsearch to check that the R2 slave slapd is running..."
117 for i in 0 1 2 3 4 5; do
118 $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $R2SLAVEPORT \
119 'objectclass=*' > /dev/null 2>&1
121 if test $RC = 0 ; then
124 echo "Waiting 5 seconds for R2 slave slapd to start..."
128 echo "Waiting for the R2 slave to replicate..."
133 echo "Starting P1 slave slapd on TCP/IP port $P1SLAVEPORT..."
134 . $CONFFILTER $BACKEND $MONITORDB < $P1SRSLAVECONF > $P1REPLCONF
135 $SLAPD -f $P1REPLCONF -h $P1SLAVEURI -d $LVL $TIMING > $P1SLAVELOG 2>&1 &
137 if test $WAIT != 0 ; then
138 echo SLAVE P1 PID $P1SLAVEPID
143 echo "Using ldapsearch to check that the P1 slave slapd is running..."
144 for i in 0 1 2 3 4 5; do
145 $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $P1SLAVEPORT \
146 'objectclass=*' > /dev/null 2>&1
148 if test $RC = 0 ; then
151 echo "Waiting 5 seconds for P1 slave slapd to start..."
155 echo "Waiting for the P1 slave to replicate..."
158 echo "Starting P2 slave slapd on TCP/IP port $P2SLAVEPORT..."
159 . $CONFFILTER $BACKEND $MONITORDB < $P2SRSLAVECONF > $P2REPLCONF
160 $SLAPD -f $P2REPLCONF -h $P2SLAVEURI -d $LVL $TIMING > $P2SLAVELOG 2>&1 &
162 if test $WAIT != 0 ; then
163 echo SLAVE P2 PID $P2SLAVEPID
167 echo "Using ldapsearch to check that the P2 slave slapd is running..."
168 for i in 0 1 2 3 4 5; do
169 $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $P2SLAVEPORT \
170 'objectclass=*' > /dev/null 2>&1
172 if test $RC = 0 ; then
175 echo "Waiting 5 seconds for P2 slave slapd to start..."
179 echo "Starting P3 slave slapd on TCP/IP port $P3SLAVEPORT..."
180 . $CONFFILTER $BACKEND $MONITORDB < $P3SRSLAVECONF > $P3REPLCONF
181 $SLAPD -f $P3REPLCONF -h $P3SLAVEURI -d $LVL $TIMING > $P3SLAVELOG 2>&1 &
183 if test $WAIT != 0 ; then
184 echo SLAVE P3 PID $P3SLAVEPID
188 echo "Using ldapsearch to check that the P3 slave slapd is running..."
189 for i in 0 1 2 3 4 5; do
190 $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $P3SLAVEPORT \
191 'objectclass=*' > /dev/null 2>&1
193 if test $RC = 0 ; then
196 echo "Waiting 5 seconds for P3 slave slapd to start..."
200 echo "Using ldapadd to populate the master directory..."
201 $LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT -w $PASSWD < \
202 $LDIFORDEREDNOCP > /dev/null 2>&1
204 if test $RC != 0 ; then
205 echo "ldapadd failed ($RC)!"
206 kill -HUP $PID $R1SLAVEPID $R2SLAVEPID $P1SLAVEPID $P2SLAVEPID $P3SLAVEPID
210 echo "Waiting 90 seconds for syncrepl to receive changes..."
213 echo "Using ldapmodify to modify master directory..."
216 # Do some modifications
219 $LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT -w $PASSWD > \
220 $TESTOUT 2>&1 << EOMODS
221 dn: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Michigan, c=US
232 dn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
238 dn: cn=ITD Staff,ou=Groups,o=University of Michigan,c=US
241 member: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
242 member: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
245 member: cn=Dorothy Stevens, ou=Alumni Association, ou=People, o=University of Michigan, c=US
246 member: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Michigan, c=US
248 dn: cn=All Staff,ou=Groups,o=University of Michigan,c=US
252 dn: cn=Gern Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
254 objectclass: OpenLDAPperson
258 title: Chief Investigator, ITD
259 postaladdress: ITD $ 535 W. William St $ Ann Arbor, MI 48103
260 seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US
262 homepostaladdress: 844 Brown St. Apt. 4 $ Ann Arbor, MI 48104
263 description: Very odd
264 facsimiletelephonenumber: +1 313 555 7557
265 telephonenumber: +1 313 555 8343
266 mail: gjensen@mailgw.example.com
267 homephone: +1 313 555 8844
269 dn: ou=Retired, ou=People, o=University of Michigan, c=US
271 objectclass: organizationalUnit
274 dn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
276 objectclass: OpenLDAPperson
277 cn: Rosco P. Coltrane
281 dn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
283 newrdn: cn=Rosco P. Coltrane
285 newsuperior: ou=Retired, ou=People, o=University of Michigan, c=US
287 dn: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
292 echo "Waiting 90 seconds for syncrepl to receive changes..."
295 echo "Using ldapsearch to read all the entries from the master..."
296 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT \
297 'objectclass=*' > $MASTEROUT 2>&1
300 if test $RC != 0 ; then
301 echo "ldapsearch failed at master ($RC)!"
302 kill -HUP $PID $R1SLAVEPID $R2SLAVEPID $P1SLAVEPID $P2SLAVEPID $P3SLAVEPID
306 echo "Using ldapsearch to read all the entries from the R1 slave..."
307 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $R1SLAVEPORT \
308 'objectclass=*' > $R1SLAVEOUT 2>&1
311 if test $RC != 0 ; then
312 echo "ldapsearch failed at R1 slave ($RC)!"
313 kill -HUP $PID $R1SLAVEPID $R2SLAVEPID $P1SLAVEPID $P2SLAVEPID $P3SLAVEPID
317 echo "Using ldapsearch to read all the entries from the R2 slave..."
318 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $R2SLAVEPORT \
319 'objectclass=*' > $R2SLAVEOUT 2>&1
322 if test $RC != 0 ; then
323 echo "ldapsearch failed at R2 slave ($RC)!"
324 kill -HUP $PID $R1SLAVEPID $R2SLAVEPID $P1SLAVEPID $P2SLAVEPID $P3SLAVEPID
328 echo "Using ldapsearch to read all the entries from the P1 slave..."
329 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $P1SLAVEPORT \
330 'objectclass=*' > $P1SLAVEOUT 2>&1
333 if test $RC != 0 ; then
334 echo "ldapsearch failed at R1 slave ($RC)!"
335 kill -HUP $PID $R1SLAVEPID $R2SLAVEPID $P1SLAVEPID $P2SLAVEPID $P3SLAVEPID
339 echo "Using ldapsearch to read all the entries from the P2 slave..."
340 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $P2SLAVEPORT \
341 'objectclass=*' > $P2SLAVEOUT 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 echo "Using ldapsearch to read all the entries from the P3 slave..."
351 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $P3SLAVEPORT \
352 'objectclass=*' > $P3SLAVEOUT 2>&1
355 if test $RC != 0 ; then
356 echo "ldapsearch failed at R2 slave ($RC)!"
357 kill -HUP $PID $R1SLAVEPID $R2SLAVEPID $P1SLAVEPID $P2SLAVEPID $P3SLAVEPID
361 kill -HUP $PID $R1SLAVEPID $R2SLAVEPID $P1SLAVEPID $P2SLAVEPID $P3SLAVEPID
370 echo "Filtering master ldapsearch results..."
371 . $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
372 echo "Filtering R1 slave ldapsearch results..."
373 . $LDIFFILTER < $R1LDIF > $R1LDIFFLT
374 echo "Filtering R2 slave ldapsearch results..."
375 . $LDIFFILTER < $R2LDIF > $R2LDIFFLT
376 echo "Filtering P1 slave ldapsearch results..."
377 . $LDIFFILTER < $P1LDIF > $P1LDIFFLT
378 echo "Filtering P2 slave ldapsearch results..."
379 . $LDIFFILTER < $P2LDIF > $P2LDIFFLT
380 echo "Filtering P3 slave ldapsearch results..."
381 . $LDIFFILTER < $P3LDIF > $P3LDIFFLT
383 echo "Comparing retrieved entries from master and R1 slave..."
384 $CMP $SEARCHFLT $R1LDIFFLT > $CMPOUT
386 if test $? != 0 ; then
387 echo "test failed - master and R1 slave databases differ"
391 echo "Comparing retrieved entries from master and R2 slave..."
392 $CMP $SEARCHFLT $R2LDIFFLT > $CMPOUT
394 if test $? != 0 ; then
395 echo "test failed - master and R2 slave databases differ"
399 echo "Comparing retrieved entries from master and P1 slave..."
400 $CMP $SEARCHFLT $P1LDIFFLT > $CMPOUT
402 if test $? != 0 ; then
403 echo "test failed - master and P1 slave databases differ"
407 echo "Comparing retrieved entries from master and P2 slave..."
408 $CMP $SEARCHFLT $P2LDIFFLT > $CMPOUT
410 if test $? != 0 ; then
411 echo "test failed - master and P2 slave databases differ"
415 echo "Comparing retrieved entries from master and P3 slave..."
416 $CMP $SEARCHFLT $P3LDIFFLT > $CMPOUT
418 if test $? != 0 ; then
419 echo "test failed - master and P3 slave databases differ"
423 echo ">>>>> Test succeeded"