mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-06 10:46:21 +08:00
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:
parent
d270cd7eee
commit
5395a94432
76
tests/data/slapd-repl-slave-remote.conf
Normal file
76
tests/data/slapd-repl-slave-remote.conf
Normal 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
|
@ -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"
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user