]> git.sur5r.net Git - openldap/blob - tests/scripts/test018-syncreplication-persist
allow more time to replicate
[openldap] / tests / scripts / test018-syncreplication-persist
1 #! /bin/sh
2 # $OpenLDAP$
3
4 SRCDIR="."
5 if test $# -ge 1 ; then
6         SRCDIR=$1; shift
7 fi
8
9 . $SRCDIR/scripts/args.sh $*
10
11 echo "running defines.sh"
12 . $SRCDIR/scripts/defines.sh
13
14 #
15 # Test replication:
16 # - start master
17 # - start slave
18 # - populate over ldap
19 # - perform some modifies and deleted
20 # - retrieve database over ldap and compare against expected results
21 #
22
23 echo "Cleaning up in $DBDIR..."
24 rm -f $DBDIR/[!C]*
25 echo "Resetting $P1REPLDIR..."
26 rm -rf $P1REPLDIR
27 mkdir $P1REPLDIR
28
29 SAVE=$BACKEND
30 BACKEND=bdb
31 echo "Starting master slapd on TCP/IP port $PORT..."
32 . $CONFFILTER $BACKEND $MONITORDB < $SRMASTERCONF > $DBCONF
33 $SLAPD -f $DBCONF -h $MASTERURI -d $LVL $TIMING > $MASTERLOG 2>&1 &
34 PID=$!
35 if test $WAIT != 0 ; then
36     echo PID $PID
37     read foo
38 fi
39 BACKEND=$SAVE
40
41 echo "Waiting 5 seconds to wait for master to start..."
42 sleep 5
43
44 echo "Using ldapsearch to check that master slapd is running..."
45 for i in 0 1 2 3 4 5; do
46         $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT \
47                 'objectclass=*' > /dev/null 2>&1
48         RC=$?
49         if test $RC = 0 ; then
50                 break
51         fi
52         echo "Waiting 5 seconds for slapd to start..."
53         sleep 5
54 done
55
56 echo "Using ldapadd to create the context prefix entry in the master..."
57 $LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT -w $PASSWD < \
58         $LDIFORDEREDCP > /dev/null 2>&1
59 RC=$?
60 if test $RC != 0 ; then
61         echo "ldapadd failed ($RC)!"
62         kill -HUP $PID $SLAVEPID
63         exit $RC
64 fi
65
66 echo "Starting slave slapd on TCP/IP port $P1SLAVEPORT..."
67 . $CONFFILTER $BACKEND $MONITORDB < $P1SRSLAVECONF > $P1REPLCONF
68 $SLAPD -f $P1REPLCONF -h $P1SLAVEURI -d $LVL $TIMING > $P1SLAVELOG 2>&1 &
69 P1SLAVEPID=$!
70 if test $WAIT != 0 ; then
71     echo SLAVEPID $P1SLAVEPID
72     read foo
73 fi
74
75 echo "Using ldapsearch to check that slave slapd is running..."
76 for i in 0 1 2 3 4 5; do
77         $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $P1SLAVEPORT \
78                 'objectclass=*' > /dev/null 2>&1
79         RC=$?
80         if test $RC = 0 ; then
81                 break
82         fi
83         echo "Waiting 5 seconds for slapd to start..."
84         sleep 5
85 done
86
87 echo "Using ldapadd to populate the master directory..."
88 $LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT -w $PASSWD < \
89         $LDIFORDEREDNOCP > /dev/null 2>&1
90 RC=$?
91 if test $RC != 0 ; then
92         echo "ldapadd failed ($RC)!"
93         kill -HUP $PID $SLAVEPID
94         exit $RC
95 fi
96
97 echo "Waiting 20 seconds for syncrepl to receive changes..."
98 sleep 20
99
100 echo "Using ldapmodify to modify master directory..."
101
102 #
103 # Do some modifications
104 #
105
106 $LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT -w $PASSWD > \
107         $TESTOUT 2>&1 << EOMODS
108 dn: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Michigan, c=US
109 changetype: modify
110 add: drink
111 drink: Orange Juice
112 -
113 delete: sn
114 sn: Jones
115 -
116 add: sn
117 sn: Jones
118
119 dn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
120 changetype: modify
121 replace: drink
122 drink: Iced Tea
123 drink: Mad Dog 20/20
124
125 dn: cn=ITD Staff,ou=Groups,o=University of Michigan,c=US
126 changetype: modify
127 delete: member
128 member: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
129 member: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
130 -
131 add: member
132 member: cn=Dorothy Stevens, ou=Alumni Association, ou=People, o=University of Michigan, c=US
133 member: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Michigan, c=US
134
135 dn: cn=All Staff,ou=Groups,o=University of Michigan,c=US
136 changetype: modify
137 delete: description
138
139 dn: cn=Gern Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
140 changetype: add
141 objectclass: OpenLDAPperson
142 cn: Gern Jensen
143 sn: Jensen
144 uid: gjensen
145 title: Chief Investigator, ITD
146 postaladdress: ITD $ 535 W. William St $ Ann Arbor, MI 48103
147 seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US
148 drink: Coffee
149 homepostaladdress: 844 Brown St. Apt. 4 $ Ann Arbor, MI 48104
150 description: Very odd
151 facsimiletelephonenumber: +1 313 555 7557
152 telephonenumber: +1 313 555 8343
153 mail: gjensen@mailgw.example.com
154 homephone: +1 313 555 8844
155
156 dn: ou=Retired, ou=People, o=University of Michigan, c=US
157 changetype: add
158 objectclass: organizationalUnit
159 ou: Retired
160
161 dn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
162 changetype: add
163 objectclass: OpenLDAPperson
164 cn: Rosco P. Coltrane
165 sn: Coltrane
166 uid: rosco
167
168 dn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
169 changetype: modrdn
170 newrdn: cn=Rosco P. Coltrane
171 deleteoldrdn: 1
172 newsuperior: ou=Retired, ou=People, o=University of Michigan, c=US
173
174 dn: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
175 changetype: delete
176
177 EOMODS
178
179 echo "Waiting 20 seconds for syncrepl to receive changes..."
180 sleep 20
181
182 echo "Using ldapsearch to read all the entries from the master..."
183 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT \
184         'objectclass=*' > $MASTEROUT 2>&1
185 RC=$?
186
187 if test $RC != 0 ; then
188         echo "ldapsearch failed at master ($RC)!"
189         kill -HUP $PID $SLAVEPID
190         exit $RC
191 fi
192
193 echo "Using ldapsearch to read all the entries from the slave..."
194 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $P1SLAVEPORT \
195         'objectclass=*' > $P1SLAVEOUT 2>&1
196 RC=$?
197
198 if test $RC != 0 ; then
199         echo "ldapsearch failed at slave ($RC)!"
200         kill -HUP $PID $P1SLAVEPID
201         exit $RC
202 fi
203
204 kill -HUP $PID $P1SLAVEPID
205
206 SEARCHOUT=$MASTEROUT
207 LDIF=$P1SLAVEOUT
208
209 echo "Filtering ldapsearch results..."
210 . $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
211 echo "Filtering original ldif used to create database..."
212 . $LDIFFILTER < $LDIF > $P1LDIFFLT
213
214 echo "Comparing retrieved entries from master and slave..."
215 $CMP $SEARCHFLT $P1LDIFFLT > $CMPOUT
216
217 if test $? != 0 ; then
218         echo "test failed - master and slave databases differ"
219         exit 1
220 fi
221
222 echo ">>>>> Test succeeded"
223
224
225 exit 0