Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
O
OpenLDAP
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Dragoș Haiduc
OpenLDAP
Commits
4cfedb6c
Commit
4cfedb6c
authored
16 years ago
by
Quanah Gibson-Mount
Browse files
Options
Downloads
Patches
Plain Diff
parallel load test (ITS#5709)
parent
cd62e7cd
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
tests/scripts/test054-syncreplication-parallel-load
+382
-0
382 additions, 0 deletions
tests/scripts/test054-syncreplication-parallel-load
with
382 additions
and
0 deletions
tests/scripts/test054-syncreplication-parallel-load
0 → 100755
+
382
−
0
View file @
4cfedb6c
#! /bin/sh
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
## Copyright 1998-2008 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>.
if
test
"
$BACKEND
"
!=
"bdb"
&&
test
"
$BACKEND
"
!=
"hdb"
;
then
echo
"Test does not support
$BACKEND
"
exit
0
fi
echo
"running defines.sh"
.
$SRCDIR
/scripts/defines.sh
if
test
$SYNCPROV
=
syncprovno
;
then
echo
"Syncrepl provider overlay not available, test skipped"
exit
0
fi
mkdir
-p
$TESTDIR
$DBDIR1
$DBDIR4
#
# Test replication:
# - start producer
# - start consumer
# - populate over ldap
# - perform some modifies and deleted
# - attempt to modify the consumer (referral or chain)
# - retrieve database over ldap and compare against expected results
#
echo
"Starting producer slapd on TCP/IP port
$PORT1
..."
.
$CONFFILTER
$BACKEND
$MONITORDB
<
$SRMASTERCONF
>
$CONF1
$SLAPD
-f
$CONF1
-h
$URI1
-d
$LVL
$TIMING
>
$LOG1
2>&1 &
PID
=
$!
if
test
$WAIT
!=
0
;
then
echo
PID
$PID
read
foo
fi
KILLPIDS
=
"
$PID
"
sleep
1
echo
"Using ldapsearch to check that producer slapd is running..."
for
i
in
0 1 2 3 4 5
;
do
$LDAPSEARCH
-s
base
-b
"
$MONITOR
"
-h
$LOCALHOST
-p
$PORT1
\
'objectclass=*'
>
/dev/null 2>&1
RC
=
$?
if
test
$RC
=
0
;
then
break
fi
echo
"Waiting 5 seconds for slapd to start..."
sleep
5
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 producer..."
$LDAPADD
-D
"
$MANAGERDN
"
-h
$LOCALHOST
-p
$PORT1
-w
$PASSWD
<
\
$LDIFORDEREDCP
>
/dev/null 2>&1
RC
=
$?
if
test
$RC
!=
0
;
then
echo
"ldapadd failed (
$RC
)!"
test
$KILLSERVERS
!=
no
&&
kill
-HUP
$KILLPIDS
exit
$RC
fi
echo
"Starting consumer slapd on TCP/IP port
$PORT4
..."
.
$CONFFILTER
$BACKEND
$MONITORDB
<
$P1SRSLAVECONF
>
$CONF4
$SLAPD
-f
$CONF4
-h
$URI4
-d
$LVL
$TIMING
>
$LOG4
2>&1 &
SLAVEPID
=
$!
if
test
$WAIT
!=
0
;
then
echo
SLAVEPID
$SLAVEPID
read
foo
fi
KILLPIDS
=
"
$KILLPIDS
$SLAVEPID
"
sleep
1
echo
"Using ldapsearch to check that consumer slapd is running..."
for
i
in
0 1 2 3 4 5
;
do
$LDAPSEARCH
-s
base
-b
"
$MONITOR
"
-h
$LOCALHOST
-p
$PORT4
\
'objectclass=*'
>
/dev/null 2>&1
RC
=
$?
if
test
$RC
=
0
;
then
break
fi
echo
"Waiting 5 seconds for slapd to start..."
sleep
5
done
if
test
$RC
!=
0
;
then
echo
"ldapsearch failed (
$RC
)!"
test
$KILLSERVERS
!=
no
&&
kill
-HUP
$KILLPIDS
exit
$RC
fi
MORELDIF
=
$TESTDIR
/more.ldif
TESTOUT1
=
$TESTDIR
/testout1.out
TESTOUT2
=
$TESTDIR
/testout2.out
sed
-e
's/[Oo][Uu]=/ou=More /g'
-e
's/^[Oo][Uu]: /ou: More /'
\
-e
's/cn=Manager/cn=More Manager/g'
\
-e
's/^cn: Manager/cn: More Manager/'
\
$LDIFORDEREDNOCP
>
$MORELDIF
echo
"Using ldapadd to populate the producer directory..."
$LDAPADD
-D
"
$MANAGERDN
"
-h
$LOCALHOST
-p
$PORT1
-w
$PASSWD
<
\
$LDIFORDEREDNOCP
>
$TESTOUT1
2>&1 &
C1PID
=
$!
$LDAPADD
-D
"
$MANAGERDN
"
-h
$LOCALHOST
-p
$PORT1
-w
$PASSWD
<
\
$MORELDIF
>
$TESTOUT2
2>&1 &
C2PID
=
$!
wait
$C1PID
$C2PID
echo
"Waiting 15 seconds for syncrepl to receive changes..."
sleep
15
echo
"Stopping the provider, sleeping 10 seconds and restarting it..."
kill
-HUP
"
$PID
"
wait
$PID
sleep
10
echo
"RESTART"
>>
$LOG1
$SLAPD
-f
$CONF1
-h
$URI1
-d
$LVL
$TIMING
>>
$LOG1
2>&1 &
PID
=
$!
if
test
$WAIT
!=
0
;
then
echo
PID
$PID
read
foo
fi
KILLPIDS
=
"
$PID
$SLAVEPID
"
sleep
1
echo
"Using ldapsearch to check that producer slapd is running..."
for
i
in
0 1 2 3 4 5
;
do
$LDAPSEARCH
-s
base
-b
"
$MONITOR
"
-h
$LOCALHOST
-p
$PORT1
\
'objectclass=*'
>
/dev/null 2>&1
RC
=
$?
if
test
$RC
=
0
;
then
break
fi
echo
"Waiting 5 seconds for slapd to start..."
sleep
5
done
if
test
$RC
!=
0
;
then
echo
"ldapsearch failed (
$RC
)!"
test
$KILLSERVERS
!=
no
&&
kill
-HUP
$KILLPIDS
exit
$RC
fi
echo
"Waiting 10 seconds to let the system catch up"
sleep
10
echo
"Using ldapmodify to modify producer directory..."
#
# Do some modifications
#
$LDAPMODIFY
-v
-D
"
$MANAGERDN
"
-h
$LOCALHOST
-p
$PORT1
-w
$PASSWD
>
\
$TESTOUT
2>&1
<<
EOMODS
dn: cn=James A Jones 1, ou=Alumni Association, ou=People, dc=example,dc=com
changetype: modify
add: drink
drink: Orange Juice
-
delete: sn
sn: Jones
-
add: sn
sn: Jones
dn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, dc=example,dc=com
changetype: modify
replace: drink
drink: Iced Tea
dn: cn=ITD Staff,ou=Groups,dc=example,dc=com
changetype: modify
delete: uniquemember
uniquemember: cn=James A Jones 2, ou=Information Technology Division, ou=People, dc=example,dc=com
uniquemember: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, dc=example,dc=com
-
add: uniquemember
uniquemember: cn=Dorothy Stevens, ou=Alumni Association, ou=People, dc=example,dc=com
uniquemember: cn=James A Jones 1, ou=Alumni Association, ou=People, dc=example,dc=com
dn: cn=All Staff,ou=Groups,dc=example,dc=com
changetype: modify
delete: description
dn: cn=Gern Jensen, ou=Information Technology Division, ou=People, dc=example,dc=com
changetype: add
objectclass: OpenLDAPperson
cn: Gern Jensen
sn: Jensen
uid: gjensen
title: Chief Investigator, ITD
postaladdress: ITD
$
535 W. William St
$
Ann Arbor, MI 48103
seealso: cn=All Staff, ou=Groups, dc=example,dc=com
drink: Coffee
homepostaladdress: 844 Brown St. Apt. 4
$
Ann Arbor, MI 48104
description: Very odd
facsimiletelephonenumber: +1 313 555 7557
telephonenumber: +1 313 555 8343
mail: gjensen@mailgw.example.com
homephone: +1 313 555 8844
dn: ou=Retired, ou=People, dc=example,dc=com
changetype: add
objectclass: organizationalUnit
ou: Retired
dn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, dc=example,dc=com
changetype: add
objectclass: OpenLDAPperson
cn: Rosco P. Coltrane
sn: Coltrane
uid: rosco
description: Fat tycoon
dn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, dc=example,dc=com
changetype: modrdn
newrdn: cn=Rosco P. Coltrane
deleteoldrdn: 1
newsuperior: ou=Retired, ou=People, dc=example,dc=com
dn: cn=James A Jones 2, ou=Information Technology Division, ou=People, dc=example,dc=com
changetype: delete
EOMODS
RC
=
$?
if
test
$RC
!=
0
;
then
echo
"ldapmodify failed (
$RC
)!"
test
$KILLSERVERS
!=
no
&&
kill
-HUP
$KILLPIDS
exit
$RC
fi
echo
"Using ldappasswd to change some passwords..."
$LDAPPASSWD
-D
"
$MANAGERDN
"
-h
$LOCALHOST
-p
$PORT1
-w
$PASSWD
\
'cn=Bjorn Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com'
\
>
$TESTOUT
2>&1
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
"Stopping consumer to test recovery..."
kill
-HUP
$SLAVEPID
wait
$SLAVEPID
echo
"Modifying more entries on the producer..."
$LDAPMODIFY
-v
-D
"
$MANAGERDN
"
-h
$LOCALHOST
-p
$PORT1
-w
$PASSWD
>>
\
$TESTOUT
2>&1
<<
EOMODS
dn: cn=Rosco P. Coltrane, ou=Retired, ou=People, dc=example,dc=com
changetype: delete
dn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, dc=example,dc=com
changetype: modify
add: drink
drink: Mad Dog 20/20
dn: cn=Rosco P. Coltrane, ou=Retired, ou=People, dc=example,dc=com
changetype: add
objectclass: OpenLDAPperson
sn: Coltrane
uid: rosco
cn: Rosco P. Coltrane
EOMODS
echo
"Restarting consumer..."
echo
"RESTART"
>>
$LOG4
$SLAPD
-f
$CONF4
-h
$URI4
-d
$LVL
$TIMING
>>
$LOG4
2>&1 &
SLAVEPID
=
$!
if
test
$WAIT
!=
0
;
then
echo
SLAVEPID
$SLAVEPID
read
foo
fi
KILLPIDS
=
"
$PID
$SLAVEPID
"
echo
"Waiting 25 seconds for syncrepl to receive changes..."
sleep
25
if
test
!
$BACKLDAP
=
"ldapno"
;
then
echo
"Try updating the consumer slapd..."
$LDAPMODIFY
-v
-D
"
$MANAGERDN
"
-h
$LOCALHOST
-p
$PORT4
-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
=
$?
if
test
$RC
!=
0
;
then
echo
"ldapmodify failed (
$RC
)!"
test
$KILLSERVERS
!=
no
&&
kill
-HUP
$KILLPIDS
exit
$RC
fi
# ITS#4964
echo
"Trying to change some passwords on the consumer..."
$LDAPPASSWD
-D
"
$MANAGERDN
"
-h
$LOCALHOST
-p
$PORT4
-w
$PASSWD
\
'cn=Barbara Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com'
\
>
$TESTOUT
2>&1
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
fi
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
\
'(objectclass=*)'
'*'
$OPATTRS
>
$MASTEROUT
2>&1
RC
=
$?
if
test
$RC
!=
0
;
then
echo
"ldapsearch failed at producer (
$RC
)!"
test
$KILLSERVERS
!=
no
&&
kill
-HUP
$KILLPIDS
exit
$RC
fi
echo
"Using ldapsearch to read all the entries from the consumer..."
$LDAPSEARCH
-S
""
-b
"
$BASEDN
"
-h
$LOCALHOST
-p
$PORT4
\
'(objectclass=*)'
'*'
$OPATTRS
>
$SLAVEOUT
2>&1
RC
=
$?
if
test
$RC
!=
0
;
then
echo
"ldapsearch failed at consumer (
$RC
)!"
test
$KILLSERVERS
!=
no
&&
kill
-HUP
$KILLPIDS
exit
$RC
fi
test
$KILLSERVERS
!=
no
&&
kill
-HUP
$KILLPIDS
echo
"Filtering producer results..."
.
$LDIFFILTER
<
$MASTEROUT
>
$MASTERFLT
echo
"Filtering consumer results..."
.
$LDIFFILTER
<
$SLAVEOUT
>
$SLAVEFLT
echo
"Comparing retrieved entries from producer and consumer..."
$CMP
$MASTERFLT
$SLAVEFLT
>
$CMPOUT
if
test
$?
!=
0
;
then
echo
"test failed - producer and consumer databases differ"
exit
1
fi
echo
">>>>> Test succeeded"
test
$KILLSERVERS
!=
no
&&
wait
exit
0
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment