Diff for /tests/scripts/test017-syncreplication-refresh between versions 1.6 and 1.24.2.4

version 1.6, 2003/06/26 04:12:55 version 1.24.2.4, 2007/01/02 21:44:13
Line 1 Line 1
 #! /bin/sh  #! /bin/sh
 # $OpenLDAP: pkg/ldap/tests/scripts/test017-syncreplication-refresh,v 1.5 2003/06/04 10:06:46 hyc Exp $  # $OpenLDAP: pkg/ldap/tests/scripts/test017-syncreplication-refresh,v 1.24.2.3 2006/01/03 22:16:29 kurt Exp $
   ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
   ##
   ## Copyright 1998-2007 The OpenLDAP Foundation.
   ## All rights reserved.
   ##
   ## Redistribution and use in source and binary forms, with or without
   ## modification, are permitted only as authorized by the OpenLDAP
   ## Public License.
   ##
   ## A copy of this license is available in the file LICENSE in the
   ## top-level directory of the distribution or, alternatively, at
   ## <http://www.OpenLDAP.org/license.html>.
   
 SRCDIR="."  echo "running defines.sh"
 if test $# -ge 1 ; then  . $SRCDIR/scripts/defines.sh
         SRCDIR=$1; shift  
 fi  
   
 . $SRCDIR/scripts/args.sh $*  
   
 if test "$BACKEND" != "bdb" -a "$BACKEND" != "hdb"; then  if test $SYNCPROV = syncprovno; then 
         echo "Test only valid for back-bdb"          echo "Syncrepl provider overlay not available, test skipped"
         exit 0          exit 0
 fi  fi 
   
 echo "running defines.sh"  mkdir -p $TESTDIR $DBDIR1 $DBDIR2
 . $SRCDIR/scripts/defines.sh  
   
 #  #
 # Test replication:  # Test replication:
Line 22  echo "running defines.sh" Line 29  echo "running defines.sh"
 # - start slave  # - start slave
 # - populate over ldap  # - populate over ldap
 # - perform some modifies and deleted  # - perform some modifies and deleted
   # - attempt to modify the slave (referral)
 # - retrieve database over ldap and compare against expected results  # - retrieve database over ldap and compare against expected results
 #  #
   
 echo "Cleaning up in $DBDIR..."  echo "Starting master slapd on TCP/IP port $PORT1..."
 rm -f $DBDIR/[!C]*  . $CONFFILTER $BACKEND $MONITORDB < $SRMASTERCONF > $CONF1
 echo "Cleaning up in $R1REPLDIR..."  $SLAPD -f $CONF1 -h $URI1 -d $LVL $TIMING > $LOG1 2>&1 &
 rm -rf $R1REPLDIR/[!C]*  
   
 echo "Starting master slapd on TCP/IP port $PORT..."  
 . $CONFFILTER $BACKEND $MONITORDB < $SRMASTERCONF > $DBCONF  
 $SLAPD -f $DBCONF -h $MASTERURI -d $LVL $TIMING > $MASTERLOG 2>&1 &  
 PID=$!  PID=$!
 if test $WAIT != 0 ; then  if test $WAIT != 0 ; then
     echo PID $PID      echo PID $PID
     read foo      read foo
 fi  fi
   KILLPIDS="$PID"
   
 echo "Waiting 5 seconds to wait for master to start..."  sleep 1
 sleep 5  
   
 echo "Using ldapsearch to check that master slapd is running..."  echo "Using ldapsearch to check that master slapd is running..."
 for i in 0 1 2 3 4 5; do  for i in 0 1 2 3 4 5; do
         $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT \          $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT1 \
                 'objectclass=*' > /dev/null 2>&1                  'objectclass=*' > /dev/null 2>&1
         RC=$?          RC=$?
         if test $RC = 0 ; then          if test $RC = 0 ; then
Line 54  for i in 0 1 2 3 4 5; do Line 57  for i in 0 1 2 3 4 5; do
         sleep 5          sleep 5
 done  done
   
   if test $RC != 0 ; then
           echo "ldapsearch failed ($RC)!"
           test $KILLSERVERS != no && kill -HUP $KILLPIDS
           exit $RC
   fi
   
 echo "Using ldapadd to create the context prefix entry in the master..."  echo "Using ldapadd to create the context prefix entry in the master..."
 $LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT -w $PASSWD < \  $LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD < \
         $LDIFORDEREDCP > /dev/null 2>&1          $LDIFORDEREDCP > /dev/null 2>&1
 RC=$?  RC=$?
 if test $RC != 0 ; then  if test $RC != 0 ; then
         echo "ldapadd failed ($RC)!"          echo "ldapadd failed ($RC)!"
         kill -HUP $PID $SLAVEPID          test $KILLSERVERS != no && kill -HUP $KILLPIDS
         exit $RC          exit $RC
 fi  fi
   
 echo "Starting slave slapd on TCP/IP port $R1SLAVEPORT..."  echo "Starting slave slapd on TCP/IP port $PORT2..."
 . $CONFFILTER $BACKEND $MONITORDB < $R1SRSLAVECONF > $R1REPLCONF  . $CONFFILTER $BACKEND $MONITORDB < $R1SRSLAVECONF > $CONF2
 $SLAPD -f $R1REPLCONF -h $R1SLAVEURI -d $LVL $TIMING > $R1SLAVELOG 2>&1 &  $SLAPD -f $CONF2 -h $URI2 -d $LVL $TIMING > $LOG2 2>&1 &
 R1SLAVEPID=$!  SLAVEPID=$!
 if test $WAIT != 0 ; then  if test $WAIT != 0 ; then
     echo SLAVEPID $R1SLAVEPID      echo SLAVEPID $SLAVEPID
     read foo      read foo
 fi  fi
   KILLPIDS="$KILLPIDS $SLAVEPID"
   
   sleep 1
   
 echo "Using ldapsearch to check that slave slapd is running..."  echo "Using ldapsearch to check that slave slapd is running..."
 for i in 0 1 2 3 4 5; do  for i in 0 1 2 3 4 5; do
         $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $R1SLAVEPORT \          $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT2 \
                 'objectclass=*' > /dev/null 2>&1                  'objectclass=*' > /dev/null 2>&1
         RC=$?          RC=$?
         if test $RC = 0 ; then          if test $RC = 0 ; then
Line 85  for i in 0 1 2 3 4 5; do Line 97  for i in 0 1 2 3 4 5; do
         sleep 5          sleep 5
 done  done
   
   if test $RC != 0 ; then
           echo "ldapsearch failed ($RC)!"
           test $KILLSERVERS != no && kill -HUP $KILLPIDS
           exit $RC
   fi
   
 echo "Using ldapadd to populate the master directory..."  echo "Using ldapadd to populate the master directory..."
 $LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT -w $PASSWD < \  $LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD < \
         $LDIFORDEREDNOCP > /dev/null 2>&1          $LDIFORDEREDNOCP > /dev/null 2>&1
 RC=$?  RC=$?
 if test $RC != 0 ; then  if test $RC != 0 ; then
         echo "ldapadd failed ($RC)!"          echo "ldapadd failed ($RC)!"
         kill -HUP $PID $SLAVEPID          test $KILLSERVERS != no && kill -HUP $KILLPIDS
         exit $RC          exit $RC
 fi  fi
   
 echo "Waiting 30 seconds for syncrepl to receive changes..."  echo "Waiting 15 seconds for syncrepl to receive changes..."
 sleep 30  sleep 15
   
 echo "Using ldapmodify to modify master directory..."  echo "Using ldapmodify to modify master directory..."
   
Line 104  echo "Using ldapmodify to modify master Line 122  echo "Using ldapmodify to modify master
 # Do some modifications  # Do some modifications
 #  #
   
 $LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT -w $PASSWD > \  $LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD > \
         $TESTOUT 2>&1 << EOMODS          $TESTOUT 2>&1 << EOMODS
 dn: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Michigan, c=US  dn: cn=James A Jones 1, ou=Alumni Association, ou=People, dc=example,dc=com
 changetype: modify  changetype: modify
 add: drink  add: drink
 drink: Orange Juice  drink: Orange Juice
Line 117  sn: Jones Line 135  sn: Jones
 add: sn  add: sn
 sn: Jones  sn: Jones
   
 dn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US  dn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, dc=example,dc=com
 changetype: modify  changetype: modify
 replace: drink  replace: drink
 drink: Iced Tea  drink: Iced Tea
 drink: Mad Dog 20/20  drink: Mad Dog 20/20
   
 dn: cn=ITD Staff,ou=Groups,o=University of Michigan,c=US  dn: cn=ITD Staff,ou=Groups,dc=example,dc=com
 changetype: modify  changetype: modify
 delete: member  delete: uniquemember
 member: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=University of Michigan, c=US  uniquemember: cn=James A Jones 2, ou=Information Technology Division, ou=People, dc=example,dc=com
 member: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US  uniquemember: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, dc=example,dc=com
 -  -
 add: member  add: uniquemember
 member: cn=Dorothy Stevens, ou=Alumni Association, ou=People, o=University of Michigan, c=US  uniquemember: cn=Dorothy Stevens, ou=Alumni Association, ou=People, dc=example,dc=com
 member: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Michigan, c=US  uniquemember: cn=James A Jones 1, ou=Alumni Association, ou=People, dc=example,dc=com
   
 dn: cn=All Staff,ou=Groups,o=University of Michigan,c=US  dn: cn=All Staff,ou=Groups,dc=example,dc=com
 changetype: modify  changetype: modify
 delete: description  delete: description
   
 dn: cn=Gern Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US  dn: cn=Gern Jensen, ou=Information Technology Division, ou=People, dc=example,dc=com
 changetype: add  changetype: add
 objectclass: OpenLDAPperson  objectclass: OpenLDAPperson
 cn: Gern Jensen  cn: Gern Jensen
Line 145  sn: Jensen Line 163  sn: Jensen
 uid: gjensen  uid: gjensen
 title: Chief Investigator, ITD  title: Chief Investigator, ITD
 postaladdress: ITD $ 535 W. William St $ Ann Arbor, MI 48103  postaladdress: ITD $ 535 W. William St $ Ann Arbor, MI 48103
 seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US  seealso: cn=All Staff, ou=Groups, dc=example,dc=com
 drink: Coffee  drink: Coffee
 homepostaladdress: 844 Brown St. Apt. 4 $ Ann Arbor, MI 48104  homepostaladdress: 844 Brown St. Apt. 4 $ Ann Arbor, MI 48104
 description: Very odd  description: Very odd
Line 154  telephonenumber: +1 313 555 8343 Line 172  telephonenumber: +1 313 555 8343
 mail: gjensen@mailgw.example.com  mail: gjensen@mailgw.example.com
 homephone: +1 313 555 8844  homephone: +1 313 555 8844
   
 dn: ou=Retired, ou=People, o=University of Michigan, c=US  dn: ou=Retired, ou=People, dc=example,dc=com
 changetype: add  changetype: add
 objectclass: organizationalUnit  objectclass: organizationalUnit
 ou: Retired  ou: Retired
   
 dn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, o=University of Michigan, c=US  dn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, dc=example,dc=com
 changetype: add  changetype: add
 objectclass: OpenLDAPperson  objectclass: OpenLDAPperson
 cn: Rosco P. Coltrane  cn: Rosco P. Coltrane
 sn: Coltrane  sn: Coltrane
 uid: rosco  uid: rosco
   
 dn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, o=University of Michigan, c=US  dn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, dc=example,dc=com
 changetype: modrdn  changetype: modrdn
 newrdn: cn=Rosco P. Coltrane  newrdn: cn=Rosco P. Coltrane
 deleteoldrdn: 1  deleteoldrdn: 1
 newsuperior: ou=Retired, ou=People, o=University of Michigan, c=US  newsuperior: ou=Retired, ou=People, dc=example,dc=com
   
 dn: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=University of Michigan, c=US  dn: cn=James A Jones 2, ou=Information Technology Division, ou=People, dc=example,dc=com
 changetype: delete  changetype: delete
   
 EOMODS  EOMODS
   
 echo "Waiting 30 seconds for syncrepl to receive changes..."  RC=$?
 sleep 30  if test $RC != 0 ; then
           echo "ldapmodify failed ($RC)!"
           test $KILLSERVERS != no && kill -HUP $KILLPIDS
           exit $RC
   fi
   
   echo "Waiting 15 seconds for syncrepl to receive changes..."
   sleep 15
   
   echo "Try updating the slave slapd..."
   $LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT2 -w $PASSWD > \
           $TESTOUT 2>&1 << EOMODS
   dn: cn=James A Jones 1, ou=Alumni Association, ou=People, dc=example, dc=com
   changetype: modify
   add: description
   description: This write must fail because directed to a shadow context,
   description: unless the chain overlay is configured appropriately ;)
   
   EOMODS
   
   RC=$?
   
   # expect 10 (LDAP_REFERRAL)...
   if test $RC != 10 ; then
           echo "ldapmodify should have failed ($RC)!"
           test $KILLSERVERS != no && kill -HUP $KILLPIDS
           exit $RC
   fi
   
 echo "Using ldapsearch to read all the entries from the master..."  echo "Using ldapsearch to read all the entries from the master..."
 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT \  $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \
         'objectclass=*' > $MASTEROUT 2>&1          'objectclass=*' > $MASTEROUT 2>&1
 RC=$?  RC=$?
   
 if test $RC != 0 ; then  if test $RC != 0 ; then
         echo "ldapsearch failed at master ($RC)!"          echo "ldapsearch failed at master ($RC)!"
         kill -HUP $PID $SLAVEPID          test $KILLSERVERS != no && kill -HUP $KILLPIDS
         exit $RC          exit $RC
 fi  fi
   
 echo "Using ldapsearch to read all the entries from the slave..."  echo "Using ldapsearch to read all the entries from the slave..."
 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $R1SLAVEPORT \  $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
         'objectclass=*' > $R1SLAVEOUT 2>&1          'objectclass=*' > $SLAVEOUT 2>&1
 RC=$?  RC=$?
   
 if test $RC != 0 ; then  if test $RC != 0 ; then
         echo "ldapsearch failed at slave ($RC)!"          echo "ldapsearch failed at slave ($RC)!"
         kill -HUP $PID $R1SLAVEPID          test $KILLSERVERS != no && kill -HUP $KILLPIDS
         exit $RC          exit $RC
 fi  fi
   
 kill -HUP $PID $R1SLAVEPID  test $KILLSERVERS != no && kill -HUP $KILLPIDS
   
 SEARCHOUT=$MASTEROUT  
 LDIF=$R1SLAVEOUT  
   
 echo "Filtering ldapsearch results..."  echo "Filtering master results..."
 . $LDIFFILTER < $SEARCHOUT > $SEARCHFLT  . $LDIFFILTER < $MASTEROUT > $MASTERFLT
 echo "Filtering original ldif used to create database..."  echo "Filtering slave results..."
 . $LDIFFILTER < $LDIF > $R1LDIFFLT  . $LDIFFILTER < $SLAVEOUT > $SLAVEFLT
   
 echo "Comparing retrieved entries from master and slave..."  echo "Comparing retrieved entries from master and slave..."
 $CMP $SEARCHFLT $R1LDIFFLT > $CMPOUT  $CMP $MASTERFLT $SLAVEFLT > $CMPOUT
   
 if test $? != 0 ; then  if test $? != 0 ; then
         echo "test failed - master and slave databases differ"          echo "test failed - master and slave databases differ"
Line 221  if test $? != 0 ; then Line 263  if test $? != 0 ; then
 fi  fi
   
 echo ">>>>> Test succeeded"  echo ">>>>> Test succeeded"
   
   
 exit 0  exit 0

Removed from v.1.6  
changed lines
  Added in v.1.24.2.4


______________
© Copyright 1998-2020, OpenLDAP Foundation, info@OpenLDAP.org