Diff for /tests/scripts/test017-syncreplication-refresh between versions 1.27 and 1.33.2.7

version 1.27, 2005/01/19 13:05:35 version 1.33.2.7, 2009/03/05 22:19:39
Line 1 Line 1
 #! /bin/sh  #! /bin/sh
 # $OpenLDAP: pkg/ldap/tests/scripts/test017-syncreplication-refresh,v 1.26 2005/01/10 23:34:14 ando Exp $  # $OpenLDAP: pkg/ldap/tests/scripts/test017-syncreplication-refresh,v 1.33.2.6 2009/01/28 19:22:51 quanah Exp $
 ## This work is part of OpenLDAP Software <http://www.openldap.org/>.  ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
 ##  ##
 ## Copyright 1998-2005 The OpenLDAP Foundation.  ## Copyright 1998-2009 The OpenLDAP Foundation.
 ## All rights reserved.  ## All rights reserved.
 ##  ##
 ## Redistribution and use in source and binary forms, with or without  ## Redistribution and use in source and binary forms, with or without
Line 25  mkdir -p $TESTDIR $DBDIR1 $DBDIR2 Line 25  mkdir -p $TESTDIR $DBDIR1 $DBDIR2
   
 #  #
 # Test replication:  # Test replication:
 # - start master  # - start producer
 # - start slave  # - start consumer
 # - populate over ldap  # - populate over ldap
 # - perform some modifies and deleted  # - perform some modifies and deleted
   # - attempt to modify the consumer (referral)
 # - retrieve database over ldap and compare against expected results  # - retrieve database over ldap and compare against expected results
 #  #
   
 echo "Starting master slapd on TCP/IP port $PORT1..."  echo "Starting producer slapd on TCP/IP port $PORT1..."
 . $CONFFILTER $BACKEND $MONITORDB < $SRMASTERCONF > $CONF1  . $CONFFILTER $BACKEND $MONITORDB < $SRMASTERCONF > $CONF1
 $SLAPD -f $CONF1 -h $URI1 -d $LVL $TIMING > $LOG1 2>&1 &  $SLAPD -f $CONF1 -h $URI1 -d $LVL $TIMING > $LOG1 2>&1 &
 PID=$!  PID=$!
Line 42  if test $WAIT != 0 ; then Line 43  if test $WAIT != 0 ; then
 fi  fi
 KILLPIDS="$PID"  KILLPIDS="$PID"
   
 echo "Using ldapsearch to check that master slapd is running..."  sleep 1
   
   echo "Using ldapsearch to check that producer 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 $PORT1 \          $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT1 \
                 'objectclass=*' > /dev/null 2>&1                  'objectclass=*' > /dev/null 2>&1
Line 60  if test $RC != 0 ; then Line 63  if test $RC != 0 ; then
         exit $RC          exit $RC
 fi  fi
   
 echo "Using ldapadd to create the context prefix entry in the master..."  echo "Using ldapadd to create the context prefix entry in the producer..."
 $LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD < \  $LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD < \
         $LDIFORDEREDCP > /dev/null 2>&1          $LDIFORDEREDCP > /dev/null 2>&1
 RC=$?  RC=$?
Line 70  if test $RC != 0 ; then Line 73  if test $RC != 0 ; then
         exit $RC          exit $RC
 fi  fi
   
 echo "Starting slave slapd on TCP/IP port $PORT2..."  echo "Starting consumer slapd on TCP/IP port $PORT2..."
 . $CONFFILTER $BACKEND $MONITORDB < $R1SRSLAVECONF > $CONF2  . $CONFFILTER $BACKEND $MONITORDB < $R1SRSLAVECONF > $CONF2
 $SLAPD -f $CONF2 -h $URI2 -d $LVL $TIMING > $LOG2 2>&1 &  $SLAPD -f $CONF2 -h $URI2 -d $LVL $TIMING > $LOG2 2>&1 &
 SLAVEPID=$!  SLAVEPID=$!
Line 80  if test $WAIT != 0 ; then Line 83  if test $WAIT != 0 ; then
 fi  fi
 KILLPIDS="$KILLPIDS $SLAVEPID"  KILLPIDS="$KILLPIDS $SLAVEPID"
   
 echo "Using ldapsearch to check that slave slapd is running..."  sleep 1
   
   echo "Using ldapsearch to check that consumer 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 $PORT2 \          $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT2 \
                 'objectclass=*' > /dev/null 2>&1                  'objectclass=*' > /dev/null 2>&1
Line 98  if test $RC != 0 ; then Line 103  if test $RC != 0 ; then
         exit $RC          exit $RC
 fi  fi
   
 echo "Using ldapadd to populate the master directory..."  echo "Using ldapadd to populate the producer directory..."
 $LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD < \  $LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD < \
         $LDIFORDEREDNOCP > /dev/null 2>&1          $LDIFORDEREDNOCP > /dev/null 2>&1
 RC=$?  RC=$?
Line 108  if test $RC != 0 ; then Line 113  if test $RC != 0 ; then
         exit $RC          exit $RC
 fi  fi
   
 echo "Waiting 15 seconds for syncrepl to receive changes..."  echo "Waiting $SLEEP1 seconds for syncrepl to receive changes..."
 sleep 15  sleep $SLEEP1
   
 echo "Using ldapmodify to modify master directory..."  echo "Using ldapmodify to modify producer directory..."
   
 #  #
 # Do some modifications  # Do some modifications
Line 188  newsuperior: ou=Retired, ou=People, dc=e Line 193  newsuperior: ou=Retired, ou=People, dc=e
 dn: cn=James A Jones 2, ou=Information Technology Division, ou=People, dc=example,dc=com  dn: cn=James A Jones 2, ou=Information Technology Division, ou=People, dc=example,dc=com
 changetype: delete  changetype: delete
   
   dn: dc=testdomain1,dc=example,dc=com
   changetype: modrdn
   newrdn: dc=itsdomain1
   deleteoldrdn: 1
   
   dn: dc=itsdomain1,dc=example,dc=com
   changetype: modify
   replace: description
   description: Example, Inc. ITS test domain
   
 EOMODS  EOMODS
   
 RC=$?  RC=$?
Line 200  fi Line 215  fi
 echo "Waiting 15 seconds for syncrepl to receive changes..."  echo "Waiting 15 seconds for syncrepl to receive changes..."
 sleep 15  sleep 15
   
 echo "Try updating the slave..."  echo "Performing modrdn alone on the producer..."
   $LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD > \
           $TESTOUT 2>&1 << EOMODS
   dn: dc=testdomain2,dc=example,dc=com
   changetype: modrdn
   newrdn: dc=itsdomain2
   deleteoldrdn: 1
   
   EOMODS
   
   RC=$?
   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 "Performing modify alone on the producer..."
   $LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD > \
           $TESTOUT 2>&1 << EOMODS
   dn: dc=itsdomain2,dc=example,dc=com
   changetype: modify
   replace: description
   description: Example, Inc. itsdomain2 test domain
   
   EOMODS
   
   RC=$?
   if test $RC != 0 ; then
           echo "ldapmodify failed ($RC)!"
           test $KILLSERVERS != no && kill -HUP $KILLPIDS
           exit $RC
   fi
   
   echo "Waiting $SLEEP1 seconds for syncrepl to receive changes..."
   sleep $SLEEP1
   
   echo "Try updating the consumer slapd..."
 $LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT2 -w $PASSWD > \  $LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT2 -w $PASSWD > \
         $TESTOUT 2>&1 << EOMODS          $TESTOUT 2>&1 << EOMODS
 dn: cn=James A Jones 1, ou=Alumni Association, ou=People, dc=example, dc=com  dn: cn=James A Jones 1, ou=Alumni Association, ou=People, dc=example, dc=com
 changetype: modify  changetype: modify
 add: description  add: description
 description: this write must fail because directed to a shadow context  description: This write must fail because directed to a shadow context,
   description: unless the chain overlay is configured appropriately ;)
   
 EOMODS  EOMODS
   
Line 214  RC=$? Line 270  RC=$?
   
 # expect 10 (LDAP_REFERRAL)...  # expect 10 (LDAP_REFERRAL)...
 if test $RC != 10 ; then  if test $RC != 10 ; then
         echo "ldapmodify should have failed ($RC)!"          echo "ldapmodify should have returned referral ($RC)!"
         test $KILLSERVERS != no && kill -HUP $KILLPIDS          test $KILLSERVERS != no && kill -HUP $KILLPIDS
         exit $RC          exit $RC
 fi  fi
   
 echo "Using ldapsearch to read all the entries from the master..."  OPATTRS="entryUUID creatorsName createTimestamp modifiersName modifyTimestamp"
   
   echo "Using ldapsearch to read all the entries from the producer..."
 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \  $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \
         'objectclass=*' > $MASTEROUT 2>&1          '(objectclass=*)' '*' $OPATTRS > $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 producer ($RC)!"
         test $KILLSERVERS != no && kill -HUP $KILLPIDS          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 consumer..."
 $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \  $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
         'objectclass=*' > $SLAVEOUT 2>&1          '(objectclass=*)' '*' $OPATTRS > $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 consumer ($RC)!"
         test $KILLSERVERS != no && kill -HUP $KILLPIDS          test $KILLSERVERS != no && kill -HUP $KILLPIDS
         exit $RC          exit $RC
 fi  fi
   
 test $KILLSERVERS != no && kill -HUP $KILLPIDS  test $KILLSERVERS != no && kill -HUP $KILLPIDS
   
 echo "Filtering master results..."  echo "Filtering producer results..."
 . $LDIFFILTER < $MASTEROUT > $MASTERFLT  . $LDIFFILTER < $MASTEROUT > $MASTERFLT
 echo "Filtering slave results..."  echo "Filtering consumer results..."
 . $LDIFFILTER < $SLAVEOUT > $SLAVEFLT  . $LDIFFILTER < $SLAVEOUT > $SLAVEFLT
   
 echo "Comparing retrieved entries from master and slave..."  echo "Comparing retrieved entries from producer and consumer..."
 $CMP $MASTERFLT $SLAVEFLT > $CMPOUT  $CMP $MASTERFLT $SLAVEFLT > $CMPOUT
   
 if test $? != 0 ; then  if test $? != 0 ; then
         echo "test failed - master and slave databases differ"          echo "test failed - producer and consumer databases differ"
         exit 1          exit 1
 fi  fi
   
 echo ">>>>> Test succeeded"  echo ">>>>> Test succeeded"
   
   test $KILLSERVERS != no && wait
   
 exit 0  exit 0

Removed from v.1.27  
changed lines
  Added in v.1.33.2.7


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