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