everything works without any need for changes in syncrepl code; only modifications when the remote consumer is down fail, but I'll track that later (back to work...)

This commit is contained in:
Pierangelo Masarati 2005-12-15 17:34:43 +00:00
parent d270cd7eee
commit 5395a94432
4 changed files with 119 additions and 24 deletions

View File

@ -0,0 +1,76 @@
# slave slapd config -- for testing of replication
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
## Copyright 1998-2005 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>.
include @SCHEMADIR@/core.schema
include @SCHEMADIR@/cosine.schema
include @SCHEMADIR@/inetorgperson.schema
include @SCHEMADIR@/openldap.schema
include @SCHEMADIR@/nis.schema
#
pidfile @TESTDIR@/slapd.2.pid
argsfile @TESTDIR@/slapd.2.args
#mod#modulepath ../servers/slapd/back-@BACKEND@/
#mod#moduleload back_@BACKEND@.la
#monitormod#modulepath ../servers/slapd/back-monitor/
#monitormod#moduleload back_monitor.la
#ldapmod#modulepath ../servers/slapd/back-ldap/
#ldapmod#moduleload back_ldap.la
#ldapyes#overlay chain
#ldapyes#chain-uri @URI1@
#ldapyes#chain-idassert-bind bindmethod=simple binddn="cn=Manager,dc=example,dc=com" credentials=secret mode=self
#ldapmod#overlay chain
#ldapmod#chain-uri @URI1@
#ldapmod#chain-idassert-bind bindmethod=simple binddn="cn=Manager,dc=example,dc=com" credentials=secret mode=self
#######################################################################
# database definitions
#######################################################################
access to *
by * read
database @BACKEND@
#ldbm#cachesize 0
suffix "dc=example,dc=com"
directory @TESTDIR@/db.2.a
rootdn "cn=Replica,dc=example,dc=com"
rootpw secret
# HACK: use the RootDN of the monitor database as UpdateDN so ACLs apply
# whithout the need to write the UpdateDN before starting replication
updatedn "cn=Monitor"
updateref @URI1@
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#bdb#index entryUUID pres,eq
#hdb#index objectClass eq
#hdb#index cn,sn,uid pres,eq,sub
#hdb#index entryUUID pres,eq
# Need to strip hasSubordinates from internal searches otherwise
# syncrepl will try to delete it, since syncprov is not sending
# it because it's generated
access to dn.subtree="dc=example,dc=com" attrs=hasSubordinates
by dn.exact="cn=Monitor" none
by * read
access to dn.subtree="dc=example,dc=com"
by dn.exact="cn=Monitor" write
by * read
#monitor#database monitor
#monitor#rootdn "cn=Monitor"
#monitor#rootpw monitor

View File

@ -36,15 +36,21 @@ argsfile @TESTDIR@/slapd.3.args
####################################################################### #######################################################################
database ldap database ldap
#restrict all restrict all
suffix "dc=example,dc=com" suffix "dc=example,dc=com"
rootdn "cn=Replica,dc=example,dc=com" rootdn "cn=Whoever"
uri @URI2@ uri @URI2@
# HACK: use the RootDN of the monitor database as UpdateDN so ACLs apply
# whithout the need to write the UpdateDN before starting replication
acl-bind bindmethod=simple acl-bind bindmethod=simple
binddn="cn=Replica,dc=example,dc=com" binddn="cn=Monitor"
credentials=secret credentials=monitor
# Don't change syncrepl spec yet # Don't change syncrepl spec yet
# HACK: use the RootDN of the monitor database as UpdateDN so ACLs apply
# whithout the need to write the UpdateDN before starting replication
syncrepl rid=1 syncrepl rid=1
provider=@URI1@ provider=@URI1@
binddn="cn=Manager,dc=example,dc=com" binddn="cn=Manager,dc=example,dc=com"

View File

@ -104,6 +104,7 @@ GLUELDAPCONF=$DATADIR/slapd-glue-ldap.conf
ACICONF=$DATADIR/slapd-aci.conf ACICONF=$DATADIR/slapd-aci.conf
VALSORTCONF=$DATADIR/slapd-valsort.conf VALSORTCONF=$DATADIR/slapd-valsort.conf
DYNLISTCONF=$DATADIR/slapd-dynlist.conf DYNLISTCONF=$DATADIR/slapd-dynlist.conf
RSLAVECONF=$DATADIR/slapd-repl-slave-remote.conf
PLSRSLAVECONF=$DATADIR/slapd-syncrepl-slave-persist-ldap.conf PLSRSLAVECONF=$DATADIR/slapd-syncrepl-slave-persist-ldap.conf
CONF1=$TESTDIR/slapd.1.conf CONF1=$TESTDIR/slapd.1.conf

View File

@ -36,6 +36,11 @@ if test $SYNCPROV = syncprovno; then
exit 0 exit 0
fi fi
if test $MONITORDB = no; then
echo "Monitor backend not available, test skipped"
exit 0
fi
mkdir -p $TESTDIR $DBDIR1 $DBDIR2 mkdir -p $TESTDIR $DBDIR1 $DBDIR2
# #
@ -63,7 +68,7 @@ sleep 1
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 $PORT1 \ $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
break break
@ -89,7 +94,7 @@ if test $RC != 0 ; then
fi fi
echo "Starting slave slapd on TCP/IP port $PORT2..." echo "Starting slave slapd on TCP/IP port $PORT2..."
. $CONFFILTER $BACKEND $MONITORDB < $SLAVECONF > $CONF2 . $CONFFILTER $BACKEND $MONITORDB < $RSLAVECONF > $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=$!
if test $WAIT != 0 ; then if test $WAIT != 0 ; then
@ -103,7 +108,7 @@ 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 $PORT2 \ $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
break break
@ -133,7 +138,7 @@ sleep 1
echo "Using ldapsearch to check that proxy slapd is running..." echo "Using ldapsearch to check that proxy 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 $PORT3 \ $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT3 \
'objectclass=*' > /dev/null 2>&1 '(objectClass=*)' > /dev/null 2>&1
RC=$? RC=$?
if test $RC = 0 ; then if test $RC = 0 ; then
break break
@ -164,7 +169,7 @@ sleep 15
# first check # first check
#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 $PORT1 \ $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
@ -175,7 +180,7 @@ 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 $PORT2 \ $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
'objectclass=*' > $SLAVEOUT 2>&1 '(objectClass=*)' > $SLAVEOUT 2>&1
RC=$? RC=$?
if test $RC != 0 ; then if test $RC != 0 ; then
@ -215,7 +220,7 @@ sleep 1
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 $PORT1 \ $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
break break
@ -323,7 +328,7 @@ sleep 15
# second check # second check
#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 $PORT1 \ $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
@ -334,7 +339,7 @@ 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 $PORT2 \ $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
'objectclass=*' > $SLAVEOUT 2>&1 '(objectClass=*)' > $SLAVEOUT 2>&1
RC=$? RC=$?
if test $RC != 0 ; then if test $RC != 0 ; then
@ -373,9 +378,16 @@ dn: cn=James T. Kirk, ou=Retired, ou=People, dc=example,dc=com
changetype: add changetype: add
objectclass: OpenLDAPperson objectclass: OpenLDAPperson
sn: Kirk sn: Kirk
uid: jkirk uid: jtk
cn: James T. Kirk cn: James T. Kirk
dn: cn=Tiberius J. Hooker, ou=Retired, ou=People, dc=example,dc=com
changetype: add
objectclass: OpenLDAPperson
sn: Hooker
uid: tjh
cn: Tiberius J. Hooker
EOMODS EOMODS
echo "Restarting proxy..." echo "Restarting proxy..."
@ -394,7 +406,7 @@ sleep 25
# third check # third check
#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 $PORT1 \ $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
@ -405,7 +417,7 @@ 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 $PORT2 \ $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
'objectclass=*' > $SLAVEOUT 2>&1 '(objectClass=*)' > $SLAVEOUT 2>&1
RC=$? RC=$?
if test $RC != 0 ; then if test $RC != 0 ; then
@ -454,7 +466,7 @@ fi
# fourth check # fourth check
#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 $PORT1 \ $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
@ -465,7 +477,7 @@ 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 $PORT2 \ $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
'objectclass=*' > $SLAVEOUT 2>&1 '(objectClass=*)' > $SLAVEOUT 2>&1
RC=$? RC=$?
if test $RC != 0 ; then if test $RC != 0 ; then
@ -518,7 +530,7 @@ sleep 25
# fifth check # fifth check
#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 $PORT1 \ $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
@ -529,7 +541,7 @@ 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 $PORT2 \ $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
'objectclass=*' > $SLAVEOUT 2>&1 '(objectClass=*)' > $SLAVEOUT 2>&1
RC=$? RC=$?
if test $RC != 0 ; then if test $RC != 0 ; then
@ -556,7 +568,7 @@ fi
# #
# Modifications known to fail # Modifications known to fail
# #
echo "(DEVEL) Performing modifications that are known to fail..."
$LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD > \ $LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD > \
$TESTOUT 2>&1 << EOMODS $TESTOUT 2>&1 << EOMODS
# First, back out previous change # First, back out previous change
@ -565,7 +577,7 @@ changetype: modify
delete: drink delete: drink
drink: Mad Dog 20/20 drink: Mad Dog 20/20
# From now on, place modifications that are known to fail # From now on, perform modifications that are known to fail
dn: cn=All Staff,ou=Groups,dc=example,dc=com dn: cn=All Staff,ou=Groups,dc=example,dc=com
changetype: modify changetype: modify
delete: description delete: description
@ -585,7 +597,7 @@ sleep 15
# sixth check # sixth check
#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 $PORT1 \ $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
@ -596,7 +608,7 @@ 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 $PORT2 \ $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \
'objectclass=*' > $SLAVEOUT 2>&1 '(objectClass=*)' > $SLAVEOUT 2>&1
RC=$? RC=$?
if test $RC != 0 ; then if test $RC != 0 ; then