mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

gary_williams
05.26.2007 b2a31e7655b4e8dbe114d9a21718330b409735f8
Issue 606 implement a full re-synchronization through a protocol 
3 files deleted
6 files added
3 files renamed
9 files modified
4766 ■■■■ changed files
opends/tests/functional-tests/config/replication/basic_topology.txt patch | view | raw | blame | history
opends/tests/functional-tests/shared/data/replication/Airius.ldif 2772 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/functions/baselib.xml 125 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/functions/dsadm.xml 330 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/functions/environment.xml 12 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/functions/stafcmd.xml 2 ●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/functions/staxcmd.xml 4 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/functions/topology.xml 82 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/functions/utils.xml 5 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/python/replication.py 38 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/replication/basic/replication_basic.xml 248 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/replication/basic/replication_basic_setup.xml 122 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/replication/replication.xml 47 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/replication/replication_cleanup.xml 93 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/replication/replication_setup.xml 114 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml 172 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/runFuncTests.xml 10 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/setup/setup.xml 6 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/synchronization/basic/synchronization_basic.xml 205 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/synchronization/basic/synchronization_basic_bob.xml 220 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/synchronization/basic/synchronization_basic_setup.xml 159 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/config/replication/basic_topology.txt
opends/tests/functional-tests/shared/data/replication/Airius.ldif
New file
@@ -0,0 +1,2772 @@
dn: o=example
objectclass: top
objectclass: organization
o: example
dn: ou=Groups, o=example
objectclass: top
objectclass: organizationalunit
ou: Groups
dn: cn=Directory Administrators, ou=Groups, o=example
cn: Directory Administrators
objectclass: top
objectclass: groupofuniquenames
ou: Groups
uniquemember: uid=kvaughan, ou=People, o=example
uniquemember: uid=rdaugherty, ou=People, o=example
uniquemember: uid=hmiller, ou=People, o=example
dn: ou=People, o=example
objectclass: top
objectclass: organizationalunit
ou: People
dn: ou=Special Users,o=example
objectclass: top
objectclass: organizationalUnit
ou: Special Users
description: Special Administrative Accounts
dn: uid=scarter, ou=People, o=example
cn: Sam Carter
sn: Carter
givenname: Sam
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Sunnyvale
uid: scarter
mail: scarter@airius.com
telephonenumber: +1 408 555 4798
facsimiletelephonenumber: +1 408 555 9751
roomnumber: 4612
userpassword: sprain
dn: uid=tmorris, ou=People, o=example
cn: Ted Morris
sn: Morris
givenname: Ted
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: tmorris
mail: tmorris@airius.com
telephonenumber: +1 408 555 9187
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 4117
userpassword: irrefutable
dn: uid=kvaughan, ou=People, o=example
cn: Kirsten Vaughan
sn: Vaughan
givenname: Kirsten
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Sunnyvale
uid: kvaughan
mail: kvaughan@airius.com
telephonenumber: +1 408 555 5625
facsimiletelephonenumber: +1 408 555 3372
roomnumber: 2871
userpassword: bribery
dn: uid=abergin, ou=People, o=example
cn: Andy Bergin
sn: Bergin
givenname: Andy
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Testing
ou: People
l: Cupertino
uid: abergin
mail: abergin@airius.com
telephonenumber: +1 408 555 8585
facsimiletelephonenumber: +1 408 555 7472
roomnumber: 3472
userpassword: inflict
dn: uid=dmiller, ou=People, o=example
cn: David Miller
sn: Miller
givenname: David
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Sunnyvale
uid: dmiller
mail: dmiller@airius.com
telephonenumber: +1 408 555 9423
facsimiletelephonenumber: +1 408 555 0111
roomnumber: 4135
userpassword: gosling
dn: uid=gfarmer, ou=People, o=example
cn: Gern Farmer
sn: Farmer
givenname: Gern
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Cupertino
uid: gfarmer
mail: gfarmer@airius.com
telephonenumber: +1 408 555 6201
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 1269
userpassword: ruling
dn: uid=kwinters, ou=People, o=example
cn: Kelly Winters
sn: Winters
givenname: Kelly
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Santa Clara
uid: kwinters
mail: kwinters@airius.com
telephonenumber: +1 408 555 9069
facsimiletelephonenumber: +1 408 555 1992
roomnumber: 4178
userpassword: forsook
dn: uid=trigden, ou=People, o=example
cn: Torrey Rigden
sn: Rigden
givenname: Torrey
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Santa Clara
uid: trigden
mail: trigden@airius.com
telephonenumber: +1 408 555 9280
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 3584
userpassword: sensitive
dn: uid=cschmith, ou=People, o=example
cn: Chris Schmith
sn: Schmith
givenname: Chris
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: cschmith
mail: cschmith@airius.com
telephonenumber: +1 408 555 8011
facsimiletelephonenumber: +1 408 555 4774
roomnumber: 0416
userpassword: hypotenuse
dn: uid=jwallace, ou=People, o=example
cn: Judy Wallace
sn: Wallace
givenname: Judy
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Sunnyvale
uid: jwallace
mail: jwallace@airius.com
telephonenumber: +1 408 555 0319
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 1033
userpassword: linear
dn: uid=jwalker, ou=People, o=example
cn: John Walker
sn: Walker
givenname: John
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Testing
ou: People
l: Cupertino
uid: jwalker
mail: jwalker@airius.com
telephonenumber: +1 408 555 1476
facsimiletelephonenumber: +1 408 555 1992
roomnumber: 3915
userpassword: dogleg
dn: uid=tclow, ou=People, o=example
cn: Torrey Clow
sn: Clow
givenname: Torrey
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: tclow
mail: tclow@airius.com
telephonenumber: +1 408 555 8825
facsimiletelephonenumber: +1 408 555 1992
roomnumber: 4376
userpassword: cardreader
dn: uid=rdaugherty, ou=People, o=example
cn: Robert Daugherty
sn: Daugherty
givenname: Robert
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Sunnyvale
uid: rdaugherty
mail: rdaugherty@airius.com
telephonenumber: +1 408 555 1296
facsimiletelephonenumber: +1 408 555 1992
roomnumber: 0194
userpassword: apples
dn: uid=jreuter, ou=People, o=example
cn: Jayne Reuter
sn: Reuter
givenname: Jayne
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Testing
ou: People
l: Cupertino
uid: jreuter
mail: jreuter@airius.com
telephonenumber: +1 408 555 1122
facsimiletelephonenumber: +1 408 555 8721
roomnumber: 2942
userpassword: destroy
dn: uid=tmason, ou=People, o=example
cn: Torrey Mason
sn: Mason
givenname: Torrey
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Sunnyvale
uid: tmason
mail: tmason@airius.com
telephonenumber: +1 408 555 1596
facsimiletelephonenumber: +1 408 555 9751
roomnumber: 1124
userpassword: squatted
dn: uid=bhall, ou=People, o=example
cn: Benjamin Hall
sn: Hall
givenname: Benjamin
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Santa Clara
uid: bhall
mail: bhall@airius.com
telephonenumber: +1 408 555 6067
facsimiletelephonenumber: +1 408 555 0111
roomnumber: 2511
userpassword: oranges
dn: uid=btalbot, ou=People, o=example
cn: Brad Talbot
sn: Talbot
givenname: Brad
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Cupertino
uid: btalbot
mail: btalbot@airius.com
telephonenumber: +1 408 555 4992
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 3532
userpassword: trident
dn: uid=mward, ou=People, o=example
cn: Marcus Ward
sn: Ward
givenname: Marcus
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: mward
mail: mward@airius.com
telephonenumber: +1 408 555 5688
facsimiletelephonenumber: +1 408 555 0111
roomnumber: 1707
userpassword: normal
dn: uid=bjablons, ou=People, o=example
cn: Barbara Jablonski
sn: Jablonski
givenname: Barbara
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Sunnyvale
uid: bjablons
mail: bjablons@airius.com
telephonenumber: +1 408 555 8815
facsimiletelephonenumber: +1 408 555 4774
roomnumber: 0906
userpassword: strawberry
dn: uid=jmcFarla, ou=People, o=example
cn: Judy McFarland
sn: McFarland
givenname: Judy
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: jmcFarla
mail: jmcFarla@airius.com
telephonenumber: +1 408 555 2567
facsimiletelephonenumber: +1 408 555 4774
roomnumber: 2359
userpassword: walnut
dn: uid=llabonte, ou=People, o=example
cn: Lee Labonte
sn: Labonte
givenname: Lee
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Santa Clara
uid: llabonte
mail: llabonte@airius.com
telephonenumber: +1 408 555 0957
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 2854
userpassword: sourdough
dn: uid=jcampaig, ou=People, o=example
cn: Jody Campaigne
sn: Campaigne
givenname: Jody
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Cupertino
uid: jcampaig
mail: jcampaig@airius.com
telephonenumber: +1 408 555 1660
facsimiletelephonenumber: +1 408 555 9751
roomnumber: 4385
userpassword: grapevine
dn: uid=bhal2, ou=People, o=example
cn: Barbara Hall
sn: Hall
givenname: Barbara
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Sunnyvale
uid: bhal2
mail: bhal2@airius.com
telephonenumber: +1 408 555 4491
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 2758
userpassword: truths
dn: uid=alutz, ou=People, o=example
cn: Alexander Lutz
sn: Lutz
givenname: Alexander
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Santa Clara
uid: alutz
mail: alutz@airius.com
telephonenumber: +1 408 555 6505
facsimiletelephonenumber: +1 408 555 4774
roomnumber: 1327
userpassword: northward
dn: uid=btalbo2, ou=People, o=example
cn: Bjorn Talbot
sn: Talbot
givenname: Bjorn
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Santa Clara
uid: btalbo2
mail: btalbo2@airius.com
telephonenumber: +1 408 555 4234
facsimiletelephonenumber: +1 408 555 9332
roomnumber: 1205
userpassword: corduroy
dn: uid=achassin, ou=People, o=example
cn: Ashley Chassin
sn: Chassin
givenname: Ashley
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Payroll
ou: People
l: Santa Clara
uid: achassin
mail: achassin@airius.com
telephonenumber: +1 408 555 9972
facsimiletelephonenumber: +1 408 555 3372
roomnumber: 0466
userpassword: duopolist
dn: uid=hmiller, ou=People, o=example
cn: Harry Miller
sn: Miller
givenname: Harry
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: hmiller
mail: hmiller@airius.com
telephonenumber: +1 408 555 9804
facsimiletelephonenumber: +1 408 555 9332
roomnumber: 4304
userpassword: hillock
dn: uid=jcampai2, ou=People, o=example
cn: Jeffrey Campaigne
sn: Campaigne
givenname: Jeffrey
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: jcampai2
mail: jcampai2@airius.com
telephonenumber: +1 408 555 7393
facsimiletelephonenumber: +1 408 555 3372
roomnumber: 1377
userpassword: nominee
dn: uid=lulrich, ou=People, o=example
cn: Lee Ulrich
sn: Ulrich
givenname: Lee
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Testing
ou: People
l: Sunnyvale
uid: lulrich
mail: lulrich@airius.com
telephonenumber: +1 408 555 8652
facsimiletelephonenumber: +1 408 555 3825
roomnumber: 0985
userpassword: attribution
dn: uid=mlangdon, ou=People, o=example
cn: Marcus Langdon
sn: Langdon
givenname: Marcus
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Cupertino
uid: mlangdon
mail: mlangdon@airius.com
telephonenumber: +1 408 555 6249
facsimiletelephonenumber: +1 408 555 9332
roomnumber: 4471
userpassword: threat
dn: uid=striplet, ou=People, o=example
cn: Stephen Triplett
sn: Triplett
givenname: Stephen
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: striplet
mail: striplet@airius.com
telephonenumber: +1 408 555 4519
facsimiletelephonenumber: +1 408 555 4661
roomnumber: 3083
userpassword: compactify
dn: uid=gtriplet, ou=People, o=example
cn: Gern Triplett
sn: Triplett
givenname: Gern
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Sunnyvale
uid: gtriplet
mail: gtriplet@airius.com
telephonenumber: +1 408 555 2582
facsimiletelephonenumber: +1 408 555 3372
roomnumber: 4023
userpassword: placeable
dn: uid=jfalena, ou=People, o=example
cn: John Falena
sn: Falena
givenname: John
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: jfalena
mail: jfalena@airius.com
telephonenumber: +1 408 555 8133
facsimiletelephonenumber: +1 408 555 7472
roomnumber: 1917
userpassword: nightly
dn: uid=speterso, ou=People, o=example
cn: Sue Peterson
sn: Peterson
givenname: Sue
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Cupertino
uid: speterso
mail: speterso@airius.com
telephonenumber: +1 408 555 3613
facsimiletelephonenumber: +1 408 555 9332
roomnumber: 3073
userpassword: quinine
dn: uid=ejohnson, ou=People, o=example
cn: Emanuel Johnson
sn: Johnson
givenname: Emanuel
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: ejohnson
mail: ejohnson@airius.com
telephonenumber: +1 408 555 3287
facsimiletelephonenumber: +1 408 555 9332
roomnumber: 3737
userpassword: marketwise
dn: uid=prigden, ou=People, o=example
cn: Peter Rigden
sn: Rigden
givenname: Peter
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Sunnyvale
uid: prigden
mail: prigden@airius.com
telephonenumber: +1 408 555 5099
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 1271
userpassword: epiphyseal
dn: uid=bwalker, ou=People, o=example
cn: Brad Walker
sn: Walker
givenname: Brad
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: bwalker
mail: bwalker@airius.com
telephonenumber: +1 408 555 5476
facsimiletelephonenumber: +1 408 555 0111
roomnumber: 3529
userpassword: interruptible
dn: uid=kjensen, ou=People, o=example
cn: Kurt Jensen
sn: Jensen
givenname: Kurt
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Santa Clara
uid: kjensen
mail: kjensen@airius.com
telephonenumber: +1 408 555 6127
facsimiletelephonenumber: +1 408 555 8721
roomnumber: 1944
userpassword: regulatory
dn: uid=mlott, ou=People, o=example
cn: Mike Lott
sn: Lott
givenname: Mike
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Sunnyvale
uid: mlott
mail: mlott@airius.com
telephonenumber: +1 408 555 2234
facsimiletelephonenumber: +1 408 555 9332
roomnumber: 0498
userpassword: cognac
dn: uid=cwallace, ou=People, o=example
cn: Cecil Wallace
sn: Wallace
givenname: Cecil
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Cupertino
uid: cwallace
mail: cwallace@airius.com
telephonenumber: +1 408 555 6438
facsimiletelephonenumber: +1 408 555 8721
roomnumber: 0349
userpassword: quintus
dn: uid=tpierce, ou=People, o=example
cn: Tobias Pierce
sn: Pierce
givenname: Tobias
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Sunnyvale
uid: tpierce
mail: tpierce@airius.com
telephonenumber: +1 408 555 1531
facsimiletelephonenumber: +1 408 555 9332
roomnumber: 1383
userpassword: rascal
dn: uid=rbannist, ou=People, o=example
cn: Richard Bannister
sn: Bannister
givenname: Richard
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: rbannist
mail: rbannist@airius.com
telephonenumber: +1 408 555 1833
facsimiletelephonenumber: +1 408 555 4661
roomnumber: 0983
userpassword: demonstrate
dn: uid=bplante, ou=People, o=example
cn: Brian Plante
sn: Plante
givenname: Brian
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Cupertino
uid: bplante
mail: bplante@airius.com
telephonenumber: +1 408 555 3550
facsimiletelephonenumber: +1 408 555 3825
roomnumber: 4654
userpassword: tangerine
dn: uid=rmills, ou=People, o=example
cn: Randy Mills
sn: Mills
givenname: Randy
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: rmills
mail: rmills@airius.com
telephonenumber: +1 408 555 2072
facsimiletelephonenumber: +1 408 555 3372
roomnumber: 3823
userpassword: condescend
dn: uid=bschneid, ou=People, o=example
cn: Benjamin Schneider
sn: Schneider
givenname: Benjamin
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Testing
ou: People
l: Santa Clara
uid: bschneid
mail: bschneid@airius.com
telephonenumber: +1 408 555 1012
facsimiletelephonenumber: +1 408 555 7472
roomnumber: 4471
userpassword: biblical
dn: uid=skellehe, ou=People, o=example
cn: Sue Kelleher
sn: Kelleher
givenname: Sue
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Payroll
ou: People
l: Santa Clara
uid: skellehe
mail: skellehe@airius.com
telephonenumber: +1 408 555 3480
facsimiletelephonenumber: +1 408 555 8721
roomnumber: 1608
userpassword: sweltering
dn: uid=brentz, ou=People, o=example
cn: Bertram Rentz
sn: Rentz
givenname: Bertram
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Testing
ou: People
l: Sunnyvale
uid: brentz
mail: brentz@airius.com
telephonenumber: +1 408 555 5526
facsimiletelephonenumber: +1 408 555 1992
roomnumber: 0617
userpassword: diachronic
dn: uid=dsmith, ou=People, o=example
cn: Daniel Smith
sn: Smith
givenname: Daniel
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: dsmith
mail: dsmith@airius.com
telephonenumber: +1 408 555 9519
facsimiletelephonenumber: +1 408 555 3372
roomnumber: 0368
userpassword: quantitative
dn: uid=scarte2, ou=People, o=example
cn: Stephen Carter
sn: Carter
givenname: Stephen
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Santa Clara
uid: scarte2
mail: scarte2@airius.com
telephonenumber: +1 408 555 6022
facsimiletelephonenumber: +1 408 555 9751
roomnumber: 2013
userpassword: scooter
dn: uid=dthorud, ou=People, o=example
cn: David Thorud
sn: Thorud
givenname: David
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Cupertino
uid: dthorud
mail: dthorud@airius.com
telephonenumber: +1 408 555 6185
facsimiletelephonenumber: +1 408 555 7472
roomnumber: 1128
userpassword: fulcrum
dn: uid=ekohler, ou=People, o=example
cn: Elba Kohler
sn: Kohler
givenname: Elba
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Sunnyvale
uid: ekohler
mail: ekohler@airius.com
telephonenumber: +1 408 555 1926
facsimiletelephonenumber: +1 408 555 9332
roomnumber: 2721
userpassword: guildhall
dn: uid=lcampbel, ou=People, o=example
cn: Laurel Campbell
sn: Campbell
givenname: Laurel
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: lcampbel
mail: lcampbel@airius.com
telephonenumber: +1 408 555 2537
facsimiletelephonenumber: +1 408 555 1992
roomnumber: 2073
userpassword: impress
dn: uid=tlabonte, ou=People, o=example
cn: Tim Labonte
sn: Labonte
givenname: Tim
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Cupertino
uid: tlabonte
mail: tlabonte@airius.com
telephonenumber: +1 408 555 0058
facsimiletelephonenumber: +1 408 555 9751
roomnumber: 1426
userpassword: express
dn: uid=slee, ou=People, o=example
cn: Scott Lee
sn: Lee
givenname: Scott
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: slee
mail: slee@airius.com
telephonenumber: +1 408 555 2335
facsimiletelephonenumber: +1 408 555 4774
roomnumber: 1806
userpassword: revertive
dn: uid=bfree, ou=People, o=example
cn: Bjorn Free
sn: Free
givenname: Bjorn
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: bfree
mail: bfree@airius.com
telephonenumber: +1 408 555 8588
facsimiletelephonenumber: +1 408 555 4774
roomnumber: 3307
userpassword: etiquette
dn: uid=tschneid, ou=People, o=example
cn: Torrey Schneider
sn: Schneider
givenname: Torrey
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Sunnyvale
uid: tschneid
mail: tschneid@airius.com
telephonenumber: +1 408 555 7086
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 2292
userpassword: chaperone
dn: uid=prose, ou=People, o=example
cn: Paula Rose
sn: Rose
givenname: Paula
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Cupertino
uid: prose
mail: prose@airius.com
telephonenumber: +1 408 555 9998
facsimiletelephonenumber: +1 408 555 3825
roomnumber: 0542
userpassword: regatta
dn: uid=jhunter, ou=People, o=example
cn: Janet Hunter
sn: Hunter
givenname: Janet
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Santa Clara
uid: jhunter
mail: jhunter@airius.com
telephonenumber: +1 408 555 7665
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 4856
userpassword: nanometer
dn: uid=ashelton, ou=People, o=example
cn: Alexander Shelton
sn: Shelton
givenname: Alexander
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: ashelton
mail: ashelton@airius.com
telephonenumber: +1 408 555 1081
facsimiletelephonenumber: +1 408 555 7472
roomnumber: 1987
userpassword: appointe
dn: uid=mmcinnis, ou=People, o=example
cn: Marcus Mcinnis
sn: Mcinnis
givenname: Marcus
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Santa Clara
uid: mmcinnis
mail: mmcinnis@airius.com
telephonenumber: +1 408 555 9655
facsimiletelephonenumber: +1 408 555 8721
roomnumber: 4818
userpassword: calcify
dn: uid=falbers, ou=People, o=example
cn: Frank Albers
sn: Albers
givenname: Frank
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Sunnyvale
uid: falbers
mail: falbers@airius.com
telephonenumber: +1 408 555 3094
facsimiletelephonenumber: +1 408 555 9751
roomnumber: 1439
userpassword: degradation
dn: uid=mschneid, ou=People, o=example
cn: Martin Schneider
sn: Schneider
givenname: Martin
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Cupertino
uid: mschneid
mail: mschneid@airius.com
telephonenumber: +1 408 555 5017
facsimiletelephonenumber: +1 408 555 3372
roomnumber: 3153
userpassword: motorcycle
dn: uid=pcruse, ou=People, o=example
cn: Patricia Cruse
sn: Cruse
givenname: Patricia
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Testing
ou: People
l: Santa Clara
uid: pcruse
mail: pcruse@airius.com
telephonenumber: +1 408 555 8641
facsimiletelephonenumber: +1 408 555 9751
roomnumber: 3967
userpassword: pauper
dn: uid=tkelly, ou=People, o=example
cn: Timothy Kelly
sn: Kelly
givenname: Timothy
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
l: Santa Clara
uid: tkelly
mail: tkelly@airius.com
telephonenumber: +1 408 555 4295
facsimiletelephonenumber: +1 408 555 1992
roomnumber: 3107
userpassword: risible
dn: uid=ahel, ou=People, o=example
cn: Andrew Hel
sn: Hel
givenname: Andrew
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: ahel
mail: ahel@airius.com
telephonenumber: +1 408 555 2666
facsimiletelephonenumber: +1 408 555 8721
roomnumber: 0572
userpassword: sarsaparilla
dn: uid=jburrell, ou=People, o=example
cn: James Burrell
sn: Burrell
givenname: James
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Sunnyvale
uid: jburrell
mail: jburrell@airius.com
telephonenumber: +1 408 555 0751
facsimiletelephonenumber: +1 408 555 4774
roomnumber: 4926
userpassword: degrease
dn: uid=smason, ou=People, o=example
cn: Sue Mason
sn: Mason
givenname: Sue
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Cupertino
uid: smason
mail: smason@airius.com
telephonenumber: +1 408 555 9780
facsimiletelephonenumber: +1 408 555 0111
roomnumber: 4971
userpassword: sensible
dn: uid=ptyler, ou=People, o=example
cn: Pete Tyler
sn: Tyler
givenname: Pete
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: ptyler
mail: ptyler@airius.com
telephonenumber: +1 408 555 3335
facsimiletelephonenumber: +1 408 555 4774
roomnumber: 0327
userpassword: vinegar
dn: uid=calexand, ou=People, o=example
cn: Chris Alexander
sn: Alexander
givenname: Chris
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Sunnyvale
uid: calexand
mail: calexand@airius.com
telephonenumber: +1 408 555 9438
facsimiletelephonenumber: +1 408 555 3825
roomnumber: 2884
userpassword: dauphin
dn: uid=jcruse, ou=People, o=example
cn: Jim Cruse
sn: Cruse
givenname: Jim
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Payroll
ou: People
l: Santa Clara
uid: jcruse
mail: jcruse@airius.com
telephonenumber: +1 408 555 9482
facsimiletelephonenumber: +1 408 555 0111
roomnumber: 0083
userpassword: bridgework
dn: uid=kcarter, ou=People, o=example
cn: Karen Carter
sn: Carter
givenname: Karen
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Cupertino
uid: kcarter
mail: kcarter@airius.com
telephonenumber: +1 408 555 4675
facsimiletelephonenumber: +1 408 555 0111
roomnumber: 2320
userpassword: radiosonde
dn: uid=rfish, ou=People, o=example
cn: Randy Fish
sn: Fish
givenname: Randy
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: rfish
mail: rfish@airius.com
telephonenumber: +1 408 555 9865
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 2317
userpassword: mailbox
dn: uid=phunt, ou=People, o=example
cn: Philip Hunt
sn: Hunt
givenname: Philip
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Sunnyvale
uid: phunt
mail: phunt@airius.com
telephonenumber: +1 408 555 1242
facsimiletelephonenumber: +1 408 555 0111
roomnumber: 1183
userpassword: wastewater
dn: uid=rschneid, ou=People, o=example
cn: Rachel Schneider
sn: Schneider
givenname: Rachel
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: rschneid
mail: rschneid@airius.com
telephonenumber: +1 408 555 9908
facsimiletelephonenumber: +1 408 555 9332
roomnumber: 4183
userpassword: decorous
dn: uid=bjensen, ou=People, o=example
cn: Barbara Jensen
cn: Babs Jensen
sn: Jensen
givenname: Barbara
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Cupertino
uid: bjensen
mail: bjensen@airius.com
telephonenumber: +1 408 555 1862
facsimiletelephonenumber: +1 408 555 1992
roomnumber: 0209
userpassword: hifalutin
dn: uid=jlange, ou=People, o=example
cn: Jim Lange
sn: Lange
givenname: Jim
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Testing
ou: People
l: Santa Clara
uid: jlange
mail: jlange@airius.com
telephonenumber: +1 408 555 0488
facsimiletelephonenumber: +1 408 555 1992
roomnumber: 3798
userpassword: chastity
dn: uid=rulrich, ou=People, o=example
cn: Randy Ulrich
sn: Ulrich
givenname: Randy
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Sunnyvale
uid: rulrich
mail: rulrich@airius.com
telephonenumber: +1 408 555 5311
facsimiletelephonenumber: +1 408 555 8721
roomnumber: 1282
userpassword: twinkle
dn: uid=rfrancis, ou=People, o=example
cn: Richard Francis
sn: Francis
givenname: Richard
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: rfrancis
mail: rfrancis@airius.com
telephonenumber: +1 408 555 8157
facsimiletelephonenumber: +1 408 555 4774
roomnumber: 3482
userpassword: hacienda
dn: uid=mwhite, ou=People, o=example
cn: Morgan White
sn: White
givenname: Morgan
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Cupertino
uid: mwhite
mail: mwhite@airius.com
telephonenumber: +1 408 555 9620
facsimiletelephonenumber: +1 408 555 4661
roomnumber: 3088
userpassword: staple
dn: uid=gjensen, ou=People, o=example
cn: Gern Jensen
sn: Jensen
givenname: Gern
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: gjensen
mail: gjensen@airius.com
telephonenumber: +1 408 555 3299
facsimiletelephonenumber: +1 408 555 9751
roomnumber: 4609
userpassword: primitive
dn: uid=awhite, ou=People, o=example
cn: Alan White
sn: White
givenname: Alan
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Testing
ou: People
l: Sunnyvale
uid: awhite
mail: awhite@airius.com
telephonenumber: +1 408 555 3232
facsimiletelephonenumber: +1 408 555 8721
roomnumber: 0142
userpassword: placeholder
dn: uid=bmaddox, ou=People, o=example
cn: Barbara Maddox
sn: Maddox
givenname: Barbara
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: bmaddox
mail: bmaddox@airius.com
telephonenumber: +1 408 555 7783
facsimiletelephonenumber: +1 408 555 7472
roomnumber: 2207
userpassword: feedback
dn: uid=mtalbot, ou=People, o=example
cn: Martin Talbot
sn: Talbot
givenname: Martin
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Cupertino
uid: mtalbot
mail: mtalbot@airius.com
telephonenumber: +1 408 555 9228
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 1415
userpassword: currant
dn: uid=jbrown, ou=People, o=example
cn: Judy Brown
sn: Brown
givenname: Judy
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Payroll
ou: People
l: Santa Clara
uid: jbrown
mail: jbrown@airius.com
telephonenumber: +1 408 555 6885
facsimiletelephonenumber: +1 408 555 3825
roomnumber: 4224
userpassword: militiamen
dn: uid=jjensen, ou=People, o=example
cn: Jody Jensen
sn: Jensen
givenname: Jody
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Sunnyvale
uid: jjensen
mail: jjensen@airius.com
telephonenumber: +1 408 555 7587
facsimiletelephonenumber: +1 408 555 8721
roomnumber: 4882
userpassword: borderland
dn: uid=mcarter, ou=People, o=example
cn: Mike Carter
sn: Carter
givenname: Mike
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: mcarter
mail: mcarter@airius.com
telephonenumber: +1 408 555 1846
facsimiletelephonenumber: +1 408 555 4661
roomnumber: 3819
userpassword: mainland
dn: uid=dakers, ou=People, o=example
cn: David Akers
sn: Akers
givenname: David
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Cupertino
uid: dakers
mail: dakers@airius.com
telephonenumber: +1 408 555 4812
facsimiletelephonenumber: +1 408 555 8721
roomnumber: 4944
userpassword: integument
dn: uid=sfarmer, ou=People, o=example
cn: Scott Farmer
sn: Farmer
givenname: Scott
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Santa Clara
uid: sfarmer
mail: sfarmer@airius.com
telephonenumber: +1 408 555 4228
facsimiletelephonenumber: +1 408 555 4661
roomnumber: 0019
userpassword: triumphal
dn: uid=dward, ou=People, o=example
cn: Daniel Ward
sn: Ward
givenname: Daniel
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Testing
ou: People
l: Sunnyvale
uid: dward
mail: dward@airius.com
telephonenumber: +1 408 555 5322
facsimiletelephonenumber: +1 408 555 7472
roomnumber: 3927
userpassword: armload
dn: uid=tward, ou=People, o=example
cn: Tobias Ward
sn: Ward
givenname: Tobias
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: tward
mail: tward@airius.com
telephonenumber: +1 408 555 7202
facsimiletelephonenumber: +1 408 555 4661
roomnumber: 2238
userpassword: cedilla
dn: uid=pshelton, ou=People, o=example
cn: Patricia Shelton
sn: Shelton
givenname: Patricia
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Payroll
ou: People
l: Cupertino
uid: pshelton
mail: pshelton@airius.com
telephonenumber: +1 408 555 6442
facsimiletelephonenumber: +1 408 555 4661
roomnumber: 2918
userpassword: nosedive
dn: uid=jrentz, ou=People, o=example
cn: Jody Rentz
sn: Rentz
givenname: Jody
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: jrentz
mail: jrentz@airius.com
telephonenumber: +1 408 555 5829
facsimiletelephonenumber: +1 408 555 1992
roomnumber: 3025
userpassword: meander
dn: uid=plorig, ou=People, o=example
cn: Peter Lorig
sn: Lorig
givenname: Peter
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Sunnyvale
uid: plorig
mail: plorig@airius.com
telephonenumber: +1 408 555 0624
facsimiletelephonenumber: +1 408 555 7472
roomnumber: 1276
userpassword: calorimeter
dn: uid=ajensen, ou=People, o=example
cn: Allison Jensen
sn: Jensen
givenname: Allison
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Santa Clara
uid: ajensen
mail: ajensen@airius.com
telephonenumber: +1 408 555 7892
facsimiletelephonenumber: +1 408 555 0111
roomnumber: 0784
userpassword: coltsfoot
dn: uid=kschmith, ou=People, o=example
cn: Kelly Schmith
sn: Schmith
givenname: Kelly
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Cupertino
uid: kschmith
mail: kschmith@airius.com
telephonenumber: +1 408 555 9749
facsimiletelephonenumber: +1 408 555 3372
roomnumber: 2221
userpassword: purvey
dn: uid=pworrell, ou=People, o=example
cn: Pete Worrell
sn: Worrell
givenname: Pete
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: pworrell
mail: pworrell@airius.com
telephonenumber: +1 408 555 1637
facsimiletelephonenumber: +1 408 555 7472
roomnumber: 2449
userpassword: solicitous
dn: uid=mreuter, ou=People, o=example
cn: Matthew Reuter
sn: Reuter
givenname: Matthew
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Sunnyvale
uid: mreuter
mail: mreuter@airius.com
telephonenumber: +1 408 555 6879
facsimiletelephonenumber: +1 408 555 3825
roomnumber: 1356
userpassword: oblivious
dn: uid=gtyler, ou=People, o=example
cn: Gern Tyler
sn: Tyler
givenname: Gern
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: gtyler
mail: gtyler@airius.com
telephonenumber: +1 408 555 1020
facsimiletelephonenumber: +1 408 555 4774
roomnumber: 0312
userpassword: typology
dn: uid=tschmith, ou=People, o=example
cn: Tobias Schmith
sn: Schmith
givenname: Tobias
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Cupertino
uid: tschmith
mail: tschmith@airius.com
telephonenumber: +1 408 555 9626
facsimiletelephonenumber: +1 408 555 1992
roomnumber: 4607
userpassword: compost
dn: uid=bjense2, ou=People, o=example
cn: Bjorn Jensen
sn: Jensen
givenname: Bjorn
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: bjense2
mail: bjense2@airius.com
telephonenumber: +1 408 555 5655
facsimiletelephonenumber: +1 408 555 4774
roomnumber: 4294
userpassword: mortgage
dn: uid=dswain, ou=People, o=example
cn: Dietrich Swain
sn: Swain
givenname: Dietrich
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Payroll
ou: People
l: Sunnyvale
uid: dswain
mail: dswain@airius.com
telephonenumber: +1 408 555 9222
facsimiletelephonenumber: +1 408 555 1992
roomnumber: 4396
userpassword: freedom
dn: uid=ahall, ou=People, o=example
cn: Andy Hall
sn: Hall
givenname: Andy
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: ahall
mail: ahall@airius.com
telephonenumber: +1 408 555 6169
facsimiletelephonenumber: +1 408 555 4774
roomnumber: 3050
userpassword: slater
dn: uid=jmuffly, ou=People, o=example
cn: Jeff Muffly
sn: Muffly
givenname: Jeff
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Cupertino
uid: jmuffly
mail: jmuffly@airius.com
telephonenumber: +1 408 555 5287
facsimiletelephonenumber: +1 408 555 9751
roomnumber: 0997
userpassword: dictate
dn: uid=tjensen, ou=People, o=example
cn: Ted Jensen
sn: Jensen
givenname: Ted
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: tjensen
mail: tjensen@airius.com
telephonenumber: +1 408 555 8622
facsimiletelephonenumber: +1 408 555 3825
roomnumber: 4717
userpassword: ecosystem
dn: uid=ahunter, ou=People, o=example
cn: Allison Hunter
sn: Hunter
givenname: Allison
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Payroll
ou: People
l: Sunnyvale
uid: ahunter
mail: ahunter@airius.com
telephonenumber: +1 408 555 7713
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 1213
userpassword: egregious
dn: uid=jgoldste, ou=People, o=example
cn: Jon Goldstein
sn: Goldstein
givenname: Jon
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: jgoldste
mail: jgoldste@airius.com
telephonenumber: +1 408 555 5769
facsimiletelephonenumber: +1 408 555 7472
roomnumber: 1454
userpassword: yellow
dn: uid=aworrell, ou=People, o=example
cn: Alan Worrell
sn: Worrell
givenname: Alan
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Cupertino
uid: aworrell
mail: aworrell@airius.com
telephonenumber: +1 408 555 1591
facsimiletelephonenumber: +1 408 555 3825
roomnumber: 3966
userpassword: gargoyle
dn: uid=wlutz, ou=People, o=example
cn: Wendy Lutz
sn: Lutz
givenname: Wendy
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: wlutz
mail: wlutz@airius.com
telephonenumber: +1 408 555 3358
facsimiletelephonenumber: +1 408 555 9332
roomnumber: 4912
userpassword: bassinet
dn: uid=jlutz, ou=People, o=example
cn: Janet Lutz
sn: Lutz
givenname: Janet
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Sunnyvale
uid: jlutz
mail: jlutz@airius.com
telephonenumber: +1 408 555 4902
facsimiletelephonenumber: +1 408 555 3825
roomnumber: 2544
userpassword: autumn
dn: uid=dlangdon, ou=People, o=example
cn: Dan Langdon
sn: Langdon
givenname: Dan
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Santa Clara
uid: dlangdon
mail: dlangdon@airius.com
telephonenumber: +1 408 555 7044
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 3263
userpassword: botulin
dn: uid=aknutson, ou=People, o=example
cn: Ashley Knutson
sn: Knutson
givenname: Ashley
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Cupertino
uid: aknutson
mail: aknutson@airius.com
telephonenumber: +1 408 555 2169
facsimiletelephonenumber: +1 408 555 4774
roomnumber: 4736
userpassword: maltose
dn: uid=kmcinnis, ou=People, o=example
cn: Kelly Mcinnis
sn: Mcinnis
givenname: Kelly
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: kmcinnis
mail: kmcinnis@airius.com
telephonenumber: +1 408 555 8596
facsimiletelephonenumber: +1 408 555 0111
roomnumber: 4312
userpassword: stargaze
dn: uid=tcouzens, ou=People, o=example
cn: Trent Couzens
sn: Couzens
givenname: Trent
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Sunnyvale
uid: tcouzens
mail: tcouzens@airius.com
telephonenumber: +1 408 555 8401
facsimiletelephonenumber: +1 408 555 4661
roomnumber: 3994
userpassword: tambourine
dn: uid=lstockto, ou=People, o=example
cn: Lee Stockton
sn: Stockton
givenname: Lee
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Testing
ou: People
l: Santa Clara
uid: lstockto
mail: lstockto@airius.com
telephonenumber: +1 408 555 0518
facsimiletelephonenumber: +1 408 555 4774
roomnumber: 0169
userpassword: brooklyn
dn: uid=jbourke, ou=People, o=example
cn: Jon Bourke
sn: Bourke
givenname: Jon
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Cupertino
uid: jbourke
mail: jbourke@airius.com
telephonenumber: +1 408 555 8541
facsimiletelephonenumber: +1 408 555 4774
roomnumber: 0034
userpassword: brainwash
dn: uid=dlanoway, ou=People, o=example
cn: Dan Lanoway
sn: Lanoway
givenname: Dan
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: dlanoway
mail: dlanoway@airius.com
telephonenumber: +1 408 555 2017
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 3540
userpassword: manhattan
dn: uid=kcope, ou=People, o=example
cn: Karl Cope
sn: Cope
givenname: Karl
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Sunnyvale
uid: kcope
mail: kcope@airius.com
telephonenumber: +1 408 555 2709
facsimiletelephonenumber: +1 408 555 8721
roomnumber: 3040
userpassword: forfeiture
dn: uid=abarnes, ou=People, o=example
cn: Anne-Louise Barnes
sn: Barnes
givenname: Anne-Louise
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Payroll
ou: People
l: Santa Clara
uid: abarnes
mail: abarnes@airius.com
telephonenumber: +1 408 555 9445
facsimiletelephonenumber: +1 408 555 4661
roomnumber: 2290
userpassword: chevron
dn: uid=rjensen, ou=People, o=example
cn: Richard Jensen
sn: Jensen
givenname: Richard
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Cupertino
uid: rjensen
mail: rjensen@airius.com
telephonenumber: +1 408 555 5957
facsimiletelephonenumber: +1 408 555 3825
roomnumber: 2631
userpassword: disciplinarian
dn: uid=phun2, ou=People, o=example
cn: Pete Hunt
sn: Hunt
givenname: Pete
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Santa Clara
uid: phun2
mail: phun2@airius.com
telephonenumber: +1 408 555 0342
facsimiletelephonenumber: +1 408 555 4661
roomnumber: 0087
userpassword: absorb
dn: uid=mvaughan, ou=People, o=example
cn: Matthew Vaughan
sn: Vaughan
givenname: Matthew
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Testing
ou: People
l: Sunnyvale
uid: mvaughan
mail: mvaughan@airius.com
telephonenumber: +1 408 555 4692
facsimiletelephonenumber: +1 408 555 0111
roomnumber: 4508
userpassword: submitted
dn: uid=jlut2, ou=People, o=example
cn: James Lutz
sn: Lutz
givenname: James
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: jlut2
mail: jlut2@airius.com
telephonenumber: +1 408 555 9689
facsimiletelephonenumber: +1 408 555 3825
roomnumber: 3541
userpassword: shrank
dn: uid=mjablons, ou=People, o=example
cn: Morgan Jablonski
sn: Jablonski
givenname: Morgan
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Cupertino
uid: mjablons
mail: mjablons@airius.com
telephonenumber: +1 408 555 0813
facsimiletelephonenumber: +1 408 555 7472
roomnumber: 3160
userpassword: minimal
dn: uid=pchassin, ou=People, o=example
cn: Peter Chassin
sn: Chassin
givenname: Peter
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Payroll
ou: People
l: Santa Clara
uid: pchassin
mail: pchassin@airius.com
telephonenumber: +1 408 555 2816
facsimiletelephonenumber: +1 408 555 3372
roomnumber: 4524
userpassword: barbital
dn: uid=dcope, ou=People, o=example
cn: Dan Cope
sn: Cope
givenname: Dan
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Sunnyvale
uid: dcope
mail: dcope@airius.com
telephonenumber: +1 408 555 9813
facsimiletelephonenumber: +1 408 555 8721
roomnumber: 1737
userpassword: snifter
dn: uid=jrent2, ou=People, o=example
cn: Judy Rentz
sn: Rentz
givenname: Judy
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Payroll
ou: People
l: Santa Clara
uid: jrent2
mail: jrent2@airius.com
telephonenumber: +1 408 555 2523
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 4405
userpassword: tachistoscope
dn: uid=tcruse, ou=People, o=example
cn: Tobias Cruse
sn: Cruse
givenname: Tobias
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Cupertino
uid: tcruse
mail: tcruse@airius.com
telephonenumber: +1 408 555 5980
facsimiletelephonenumber: +1 408 555 4774
roomnumber: 4191
userpassword: flinty
dn: uid=eward, ou=People, o=example
cn: Eric Ward
sn: Ward
givenname: Eric
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: eward
mail: eward@airius.com
telephonenumber: +1 408 555 2320
facsimiletelephonenumber: +1 408 555 7472
roomnumber: 4874
userpassword: episcopal
dn: uid=ttully, ou=People, o=example
cn: Torrey Tully
sn: Tully
givenname: Torrey
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Sunnyvale
uid: ttully
mail: ttully@airius.com
telephonenumber: +1 408 555 2274
facsimiletelephonenumber: +1 408 555 0111
roomnumber: 3924
userpassword: schooner
dn: uid=charvey, ou=People, o=example
cn: Cecil Harvey
sn: Harvey
givenname: Cecil
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Santa Clara
uid: charvey
mail: charvey@airius.com
telephonenumber: +1 408 555 1815
facsimiletelephonenumber: +1 408 555 3825
roomnumber: 4583
userpassword: journalese
dn: uid=rfisher, ou=People, o=example
cn: Randy Fisher
sn: Fisher
givenname: Randy
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Cupertino
uid: rfisher
mail: rfisher@airius.com
telephonenumber: +1 408 555 1506
facsimiletelephonenumber: +1 408 555 1992
roomnumber: 1579
userpassword: pomegranate
dn: uid=alangdon, ou=People, o=example
cn: Andrew Langdon
sn: Langdon
givenname: Andrew
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Santa Clara
uid: alangdon
mail: alangdon@airius.com
telephonenumber: +1 408 555 8289
facsimiletelephonenumber: +1 408 555 9332
roomnumber: 2254
userpassword: muzzle
dn: uid=drose, ou=People, o=example
cn: David Rose
sn: Rose
givenname: David
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Testing
ou: People
l: Sunnyvale
uid: drose
mail: drose@airius.com
telephonenumber: +1 408 555 3963
facsimiletelephonenumber: +1 408 555 0111
roomnumber: 4012
userpassword: gubernatorial
dn: uid=polfield, ou=People, o=example
cn: Peter Olfield
sn: Olfield
givenname: Peter
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: polfield
mail: polfield@airius.com
telephonenumber: +1 408 555 8231
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 1376
userpassword: monologue
dn: uid=awalker, ou=People, o=example
cn: Andy Walker
sn: Walker
givenname: Andy
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Cupertino
uid: awalker
mail: awalker@airius.com
telephonenumber: +1 408 555 9199
facsimiletelephonenumber: +1 408 555 3372
roomnumber: 0061
userpassword: detonable
dn: uid=lrentz, ou=People, o=example
cn: Lex Rentz
sn: Rentz
givenname: Lex
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: lrentz
mail: lrentz@airius.com
telephonenumber: +1 408 555 2019
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 2203
userpassword: calcium
dn: uid=jvaughan, ou=People, o=example
cn: Jeff Vaughan
sn: Vaughan
givenname: Jeff
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Sunnyvale
uid: jvaughan
mail: jvaughan@airius.com
telephonenumber: +1 408 555 4543
facsimiletelephonenumber: +1 408 555 9751
roomnumber: 1734
userpassword: appoint
dn: uid=bfrancis, ou=People, o=example
cn: Barbara Francis
sn: Francis
givenname: Barbara
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Santa Clara
uid: bfrancis
mail: bfrancis@airius.com
telephonenumber: +1 408 555 9111
facsimiletelephonenumber: +1 408 555 9751
roomnumber: 3743
userpassword: holystone
dn: uid=ewalker, ou=People, o=example
cn: Eric Walker
sn: Walker
givenname: Eric
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Payroll
ou: People
l: Cupertino
uid: ewalker
mail: ewalker@airius.com
telephonenumber: +1 408 555 6387
facsimiletelephonenumber: +1 408 555 8721
roomnumber: 2295
userpassword: beguile
dn: uid=tjames, ou=People, o=example
cn: Tobias James
sn: James
givenname: Tobias
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: tjames
mail: tjames@airius.com
telephonenumber: +1 408 555 2458
facsimiletelephonenumber: +1 408 555 9751
roomnumber: 0730
userpassword: turtle
dn: uid=brigden, ou=People, o=example
cn: Bjorn Rigden
sn: Rigden
givenname: Bjorn
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Sunnyvale
uid: brigden
mail: brigden@airius.com
telephonenumber: +1 408 555 5263
facsimiletelephonenumber: +1 408 555 1992
roomnumber: 1643
userpassword: purple
dn: uid=ecruse, ou=People, o=example
cn: Eric Cruse
sn: Cruse
givenname: Eric
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Testing
ou: People
l: Santa Clara
uid: ecruse
mail: ecruse@airius.com
telephonenumber: +1 408 555 0648
facsimiletelephonenumber: +1 408 555 9751
roomnumber: 4233
userpassword: platelet
dn: uid=rjense2, ou=People, o=example
cn: Randy Jensen
sn: Jensen
givenname: Randy
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Testing
ou: People
l: Sunnyvale
uid: rjense2
mail: rjense2@airius.com
telephonenumber: +1 408 555 9045
facsimiletelephonenumber: +1 408 555 1992
roomnumber: 1984
userpassword: transpose
dn: uid=rhunt, ou=People, o=example
cn: Richard Hunt
sn: Hunt
givenname: Richard
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: rhunt
mail: rhunt@airius.com
telephonenumber: +1 408 555 0139
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 0718
userpassword: becloud
dn: uid=bparker, ou=People, o=example
cn: Barry Parker
sn: Parker
givenname: Barry
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Sunnyvale
uid: bparker
mail: bparker@airius.com
telephonenumber: +1 408 555 4647
facsimiletelephonenumber: +1 408 555 9332
roomnumber: 1148
userpassword: lenticular
dn: uid=ealexand, ou=People, o=example
cn: Erin Alexander
sn: Alexander
givenname: Erin
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Testing
ou: People
l: Santa Clara
uid: ealexand
mail: ealexand@airius.com
telephonenumber: +1 408 555 5563
facsimiletelephonenumber: +1 408 555 9751
roomnumber: 2434
userpassword: galactose
dn: uid=mtyler, ou=People, o=example
cn: Matthew Tyler
sn: Tyler
givenname: Matthew
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Human Resources
ou: People
l: Cupertino
uid: mtyler
mail: mtyler@airius.com
telephonenumber: +1 408 555 7907
facsimiletelephonenumber: +1 408 555 4661
roomnumber: 2701
userpassword: instantiate
dn: uid=elott, ou=People, o=example
cn: Emanuel Lott
sn: Lott
givenname: Emanuel
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Testing
ou: People
l: Santa Clara
uid: elott
mail: elott@airius.com
telephonenumber: +1 408 555 0932
facsimiletelephonenumber: +1 408 555 9751
roomnumber: 3906
userpassword: holdout
dn: uid=cnewport, ou=People, o=example
cn: Christoph Newport
sn: Newport
givenname: Christoph
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Sunnyvale
uid: cnewport
mail: cnewport@airius.com
telephonenumber: +1 408 555 0066
facsimiletelephonenumber: +1 408 555 9332
roomnumber: 0056
userpassword: expertise
dn: uid=jvedder, ou=People, o=example
cn: Jeff Vedder
sn: Vedder
givenname: Jeff
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Santa Clara
uid: jvedder
mail: jvedder@airius.com
telephonenumber: +1 408 555 4668
facsimiletelephonenumber: +1 408 555 0111
roomnumber: 3445
userpassword: befitting
dn: cn=Accounting Managers,ou=groups,o=example
objectclass: top
objectclass: groupOfUniqueNames
cn: Accounting Managers
ou: groups
uniquemember: uid=scarter, ou=People, o=example
uniquemember: uid=tmorris, ou=People, o=example
description: People who can manage accounting entries
dn: cn=HR Managers,ou=groups,o=example
objectclass: top
objectclass: groupOfUniqueNames
cn: HR Managers
ou: groups
uniquemember: uid=kvaughan, ou=People, o=example
uniquemember: uid=cschmith, ou=People, o=example
description: People who can manage HR entries
dn: cn=QA Managers,ou=groups,o=example
objectclass: top
objectclass: groupOfUniqueNames
cn: QA Managers
ou: groups
uniquemember: uid=abergin, ou=People, o=example
uniquemember: uid=jwalker, ou=People, o=example
description: People who can manage QA entries
dn: cn=PD Managers,ou=groups,o=example
objectclass: top
objectclass: groupOfUniqueNames
cn: PD Managers
ou: groups
uniquemember: uid=kwinters, ou=People, o=example
uniquemember: uid=trigden, ou=People, o=example
description: People who can manage engineer entries
dn: ou=Netscape Servers,o=example
objectclass: top
objectclass: organizationalUnit
ou: Netscape Servers
description: Standard branch for SuiteSpot Server registration
opends/tests/functional-tests/shared/functions/baselib.xml
@@ -64,36 +64,45 @@
          'dsSystemInfo' : 'true' }
      </call>
      <script>
        DSInfo.SystemList=STAXResult[1].split('\n')
      <if expr="RC != 0">
        <message>
          'Unable to obtain system information variables for %s %s.'  % (mylocation,mypath)
        </message>
      <else>
        <script>
          DSInfo.SystemList=STAXResult[1].split('\n')
          DSInfo.ServerDict['server version']= \
            DSInfo.getServerVersion(DSInfo.SystemList[0])
          for DSInfo.line in DSInfo.SystemList:
            DSInfo.key=DSInfo.line[0:DSInfo.line.find(':')].strip()
            DSInfo.value= \
              DSInfo.line[DSInfo.line.find(':')+1:len(DSInfo.line)].strip()
            DSInfo.SystemDict[DSInfo.key]=DSInfo.value
          DSInfo.ServerDict['server buildid']= \
            DSInfo.getServerValueFromKey('Build ID',DSInfo.SystemDict)
          DSInfo.ServerDict['java version']= \
            DSInfo.getServerValueFromKey('Java Version',DSInfo.SystemDict)
          DSInfo.ServerDict['java vendor']= \
            DSInfo.getServerValueFromKey('Java Vendor',DSInfo.SystemDict)
          DSInfo.ServerDict['jvm version']= \
            DSInfo.getServerValueFromKey('JVM Version',DSInfo.SystemDict)
          DSInfo.ServerDict['jvm vendor']= \
            DSInfo.getServerValueFromKey('JVM Vendor',DSInfo.SystemDict)
          DSInfo.ServerDict['system os']= \
            DSInfo.getServerValueFromKey('Operating System',DSInfo.SystemDict)
          DSInfo.ServerDict['system name']= \
            DSInfo.getServerValueFromKey('System Name',DSInfo.SystemDict)
          DSInfoServersDict[dsPath]=DSInfo.ServerDict
        </script>
      </else>
        DSInfo.ServerDict['server version']= \
          DSInfo.getServerVersion(DSInfo.SystemList[0])
        for DSInfo.line in DSInfo.SystemList:
          DSInfo.key=DSInfo.line[0:DSInfo.line.find(':')].strip()
          DSInfo.value= \
            DSInfo.line[DSInfo.line.find(':')+1:len(DSInfo.line)].strip()
          DSInfo.SystemDict[DSInfo.key]=DSInfo.value
        DSInfo.ServerDict['server buildid']= \
          DSInfo.getServerValueFromKey('Build ID',DSInfo.SystemDict)
        DSInfo.ServerDict['java version']= \
          DSInfo.getServerValueFromKey('Java Version',DSInfo.SystemDict)
        DSInfo.ServerDict['java vendor']= \
          DSInfo.getServerValueFromKey('Java Vendor',DSInfo.SystemDict)
        DSInfo.ServerDict['jvm version']= \
          DSInfo.getServerValueFromKey('JVM Version',DSInfo.SystemDict)
        DSInfo.ServerDict['jvm vendor']= \
          DSInfo.getServerValueFromKey('JVM Vendor',DSInfo.SystemDict)
        DSInfo.ServerDict['system os']= \
          DSInfo.getServerValueFromKey('Operating System',DSInfo.SystemDict)
        DSInfo.ServerDict['system name']= \
          DSInfo.getServerValueFromKey('System Name',DSInfo.SystemDict)
        DSInfoServersDict[dsPath]=DSInfo.ServerDict
      </script>
      </if>
      <!-- Obtain the secret variables for the system from start-ds -->
      <call function="'StartDsWithScript'">
        { 'location'    : mylocation,
@@ -101,30 +110,40 @@
          'dsBuildInfo' : 'true' }
      </call>
      <script>
        DSInfo.SystemList=STAXResult[1].split('\n')
        for DSInfo.line in DSInfo.SystemList:
          DSInfo.key=DSInfo.line[0:DSInfo.line.find(':')].strip()
          DSInfo.value= \
            DSInfo.line[DSInfo.line.find(':')+1:len(DSInfo.line)].strip()
          DSInfo.SystemDict[DSInfo.key]=DSInfo.value
        DSInfo.ServerDict['svn revision']= \
          DSInfo.getServerValueFromKey('Revision Number',DSInfo.SystemDict)
        DSInfo.ServerDict['major version']= \
          DSInfo.getServerValueFromKey('Major Version',DSInfo.SystemDict)
        DSInfo.ServerDict['minor version']= \
          DSInfo.getServerValueFromKey('Minor Version',DSInfo.SystemDict)
        DSInfo.ServerDict['point version']= \
          DSInfo.getServerValueFromKey('Point Version',DSInfo.SystemDict)
        DSInfo.ServerDict['version qualifier']= \
          DSInfo.getServerValueFromKey('Version Qualifier',DSInfo.SystemDict)
        DSInfo.ServerDict['fix ids']= \
          DSInfo.getServerValueFromKey('Fix IDs',DSInfo.SystemDict)
        DSInfo.ServerDict['debug build']= \
          DSInfo.getServerValueFromKey('Debug Build',DSInfo.SystemDict)
      </script>
      <if expr="RC != 0">
        <message>
          'Unable to obtain build information variables for %s %s.'  % (mylocation,mypath)
        </message>
      <else>
        <script>
          DSInfo.SystemList=STAXResult[1].split('\n')
          for DSInfo.line in DSInfo.SystemList:
            DSInfo.key=DSInfo.line[0:DSInfo.line.find(':')].strip()
            DSInfo.value= \
              DSInfo.line[DSInfo.line.find(':')+1:len(DSInfo.line)].strip()
            DSInfo.SystemDict[DSInfo.key]=DSInfo.value
          DSInfo.ServerDict['svn revision']= \
            DSInfo.getServerValueFromKey('Revision Number',DSInfo.SystemDict)
          DSInfo.ServerDict['major version']= \
            DSInfo.getServerValueFromKey('Major Version',DSInfo.SystemDict)
          DSInfo.ServerDict['minor version']= \
            DSInfo.getServerValueFromKey('Minor Version',DSInfo.SystemDict)
          DSInfo.ServerDict['point version']= \
            DSInfo.getServerValueFromKey('Point Version',DSInfo.SystemDict)
          DSInfo.ServerDict['version qualifier']= \
            DSInfo.getServerValueFromKey('Version Qualifier',DSInfo.SystemDict)
          DSInfo.ServerDict['fix ids']= \
            DSInfo.getServerValueFromKey('Fix IDs',DSInfo.SystemDict)
          DSInfo.ServerDict['debug build']= \
            DSInfo.getServerValueFromKey('Debug Build',DSInfo.SystemDict)
        </script>
      </else>
      </if>
                          
    </sequence>
    
opends/tests/functional-tests/shared/functions/dsadm.xml
@@ -28,9 +28,9 @@
<stax>
  
  <!-- This function configures DS using the configure-ds script -->
  <function name="ConfigureDsWithScript">
  <function name="SetUpDsWithScript">
    <function-prolog>
      This function configures a Directory Server using a script
      This function sets up a Directory Server using a script
    </function-prolog>    
    <function-map-args>
      <function-arg-def name="location" type="optional" default="'%s' % STAXServiceMachine">
@@ -129,7 +129,7 @@
        '%s %s' % (STAFCmd, STAFCmdParams)
      </message>
            
      <process name="'Configure DS Script'">
      <process name="'Setup DS Script'">
        <location>'%s' % location</location>
        <command>'%s' % STAFCmd</command>
        <parms>'%s' % STAFCmdParams</parms>
@@ -1037,7 +1037,7 @@
    
      <!-- Local variables -->
      <script>
        mylocation=location
        myLocation=location
        taskLdif='%s/../functional-tests/shared/data/import-task.ldif' % dsPath
        tmpTaskLdif='%s/import-task.ldif' % TMP_DATA_DIR
        taskDN='ds-task-id=%s,cn=Scheduled Tasks,cn=Tasks' % taskID
@@ -1102,12 +1102,12 @@
        { 'location'   : STAXServiceMachine,
          'srcfile'    : tmpTaskLdif,
          'destfile'   : taskLdif,
          'remotehost' : mylocation }
          'remotehost' : myLocation }
      </call>
      <!-- Start the task using ldap task interface -->
      <call function="'StartLdapTask'">
        { 'location'   : mylocation,
        { 'location'   : myLocation,
          'taskLabel'  : 'Online Import Task',
          'dsHost'     : dsInstanceHost,
          'dsPort'     : dsInstancePort,
@@ -1118,7 +1118,7 @@
      
      <!-- Check that the ldap task is completed -->
      <call function="'CheckLdapTask'">
        { 'location'   : mylocation,
        { 'location'   : myLocation,
          'dsTaskDn'   : taskDN,
          'dsHost'     : dsInstanceHost,
          'dsPort'     : dsInstancePort,
@@ -1214,7 +1214,8 @@
    
      <!-- Local variables -->
      <script>
        mylocation=location
        myLocation=location
        myPath=dsPath
        myhost=dsHost
        myport=dsPort
        mydn=dsDn
@@ -1234,12 +1235,18 @@
        <sequence>
          <!-- StartDS -->
          <call function="'StartDsWithScript'">
           { 'location'  : mylocation }
           { 'location'  : myLocation,
             'dsPath'    : myPath }
          </call>
          
          <!-- Wait for DS to start -->
          <call function="'isAlive'">
            { 'location'         : mylocation,
            { 'location'         : myLocation,
              'dsPath'           : myPath,
              'dsInstanceHost'   : myhost ,
              'dsInstancePort'   : myport ,
              'dsInstanceDn'     : mydn ,
              'dsInstancePswd'   : mypswd ,
              'noOfLoops'        : 5 ,
              'noOfMilliSeconds' : 2000 }
          </call>
@@ -1251,7 +1258,8 @@
      <iterate var="expectedEntry" in="expectedEntries">
        <sequence>
          <call function="'SearchObject'">
            { 'location'       : mylocation ,
            { 'location'       : myLocation ,
              'dsPath'         : myPath,
              'dsInstanceHost' : myhost ,
              'dsInstancePort' : myport ,
              'dsInstanceDn'   : mydn ,
@@ -1274,7 +1282,8 @@
            <break/>
          </if>
          <call function="'SearchObject'">
           { 'location'       : mylocation ,
           { 'location'       : myLocation ,
             'dsPath'         : myPath,
             'dsInstanceHost' : myhost ,
             'dsInstancePort' : myport ,
             'dsInstanceDn'   : mydn ,
@@ -1295,10 +1304,11 @@
      <if expr="stopDS == 'yes'">
        <!-- StopDS -->
        <call function="'StopDsWithScript'">
           { 'location'       : mylocation ,
             'dsHost' : myhost ,
             'dsPort' : myport ,
             'dsBindDN'   : mydn ,
           { 'location'  : myLocation ,
             'dsPath'    : myPath,
             'dsHost'    : myhost ,
             'dsPort'    : myport ,
             'dsBindDN'  : mydn ,
             'dsBindPwd' : mypswd }
        </call>  
      </if>
@@ -1503,7 +1513,7 @@
      <!-- Local variables -->
      <script>
        mylocation=location
        myLocation=location
        taskLdif='%s/../functional-tests/shared/data/export-task.ldif' % dsPath
        tmpTaskLdif='%s/export-task.ldif' % TMP_DATA_DIR
        taskDN='ds-task-id=%s,cn=Scheduled Tasks,cn=Tasks' % taskID
@@ -1562,12 +1572,12 @@
        { 'location'   : STAXServiceMachine,
          'srcfile'    : tmpTaskLdif,
          'destfile'   : taskLdif,
          'remotehost' : mylocation }
          'remotehost' : myLocation }
      </call>
      <!-- Start the task using ldap task interface -->
      <call function="'StartLdapTask'">
        { 'location'   : mylocation,
        { 'location'   : myLocation,
          'taskLabel'  : 'Online Export Task',
          'dsHost'     : dsInstanceHost,
          'dsPort'     : dsInstancePort,
@@ -1578,7 +1588,7 @@
      
      <!-- Check that the task is completed -->
      <call function="'CheckLdapTask'">
        { 'location'   : mylocation,
        { 'location'   : myLocation,
          'dsTaskDn'   : taskDN,
          'dsHost'     : dsInstanceHost,
          'dsPort'     : dsInstancePort,
@@ -1631,13 +1641,13 @@
    
      <!-- Local variables -->
      <script>
        mylocation=location
        myLocation=location
      </script>
      <message>
        'backup%s -n %s -d %s %s' % (fileExt,backEnd,backupDir,extraParams)
      </message>
      <process name="'Offline Backup'">
        <location>'%s' % mylocation </location>
        <location>'%s' % myLocation </location>
        <command>'%s/backup%s' % (dsBinPath,fileExt)</command>
        <parms>'-d %s -n %s %s' % (backupDir,backEnd,extraParams)</parms>
        <workdir>'%s' % dsBinPath</workdir>
@@ -1765,7 +1775,7 @@
    <sequence>
    
       <script>
        mylocation=location
        myLocation=location
        taskLdif='%s/../functional-tests/shared/data/backup-task.ldif' % dsPath
        tmpTaskLdif='%s/backup-task.ldif' % TMP_DATA_DIR
        taskDN='ds-task-id=%s,cn=Scheduled Tasks,cn=Tasks' % taskID
@@ -1812,12 +1822,12 @@
        { 'location'   : STAXServiceMachine,
          'srcfile'    : tmpTaskLdif,
          'destfile'   : taskLdif,
          'remotehost' : mylocation }
          'remotehost' : myLocation }
      </call>
      <!-- Start the task using ldap task interface -->
      <call function="'StartLdapTask'">
        { 'location'   : mylocation,
        { 'location'   : myLocation,
          'taskLabel'  : 'Online Backup Task',
          'dsHost'     : dsInstanceHost,
          'dsPort'     : dsInstancePort,
@@ -1828,7 +1838,7 @@
 
      <!-- Check that the ldap task is completed -->
      <call function="'CheckLdapTask'">
        { 'location'   : mylocation,
        { 'location'   : myLocation,
          'dsTaskDn'   : taskDN,
          'dsHost'     : dsInstanceHost,
          'dsPort'     : dsInstancePort,
@@ -1875,14 +1885,14 @@
    
      <!-- Local variables -->
      <script>
        mylocation=location
        myLocation=location
      </script>    
      <message>
        'restore%s -d %s %s' % (fileExt,backupDir,extraParams)
      </message>
      <process name="'Offline restore'">
        <location>'%s' % mylocation </location>
        <location>'%s' % myLocation </location>
        <command>'%s/restore%s' % (dsBinPath,fileExt)</command>
        <parms>'-d %s %s' % (backupDir,extraParams)</parms>
        <workdir>'%s' % dsBinPath</workdir>
@@ -1975,7 +1985,7 @@
    <sequence>
    
       <script>
        mylocation=location
        myLocation=location
        taskLdif='%s/../functional-tests/shared/data/restore-task.ldif' % dsPath
        tmpTaskLdif='%s/restore-task.ldif' % TMP_DATA_DIR
        taskDN='ds-task-id=%s,cn=Scheduled Tasks,cn=Tasks' % taskID
@@ -2014,12 +2024,12 @@
        { 'location'   : STAXServiceMachine,
          'srcfile'    : tmpTaskLdif,
          'destfile'   : taskLdif,
          'remotehost' : mylocation }
          'remotehost' : myLocation }
      </call>
      <!-- Start the task using ldap task interface -->
      <call function="'StartLdapTask'">
        { 'location'   : mylocation,
        { 'location'   : myLocation,
          'taskLabel'  : 'Online Restore Task',
          'dsHost'     : dsInstanceHost,
          'dsPort'     : dsInstancePort,
@@ -2030,7 +2040,7 @@
 
      <!-- Check that the ldap task is completed -->
      <call function="'CheckLdapTask'">
        { 'location'   : mylocation,
        { 'location'   : myLocation,
          'dsTaskDn'   : taskDN,
          'dsHost'     : dsInstanceHost,
          'dsPort'     : dsInstancePort,
@@ -2102,7 +2112,7 @@
      <sequence>
         <script>
          mylocation=location
          myLocation=location
          taskLdif='%s/../functional-tests/shared/data/schema-task.ldif' % dsPath
          tmpTaskLdif='%s/schema-task.ldif' % TMP_DATA_DIR
          taskDN='ds-task-id=%s,cn=Scheduled Tasks,cn=Tasks' % taskID
@@ -2138,21 +2148,21 @@
          { 'location'   : STAXServiceMachine,
            'srcfile'    : tmpTaskLdif,
            'destfile'   : taskLdif,
            'remotehost' : mylocation }
            'remotehost' : myLocation }
        </call>
        
        <!-- Copy the schema update ldif to remote host's config/schema directory -->
        <message>'Copy schema update ldif file.'</message>
        <call function="'copyFile'">
          { 'location'   : mylocation,
          { 'location'   : myLocation,
            'srcfile'    : '%s/schema/ldifs/%s' % (STAGED_DATA_DIR,ldifFile),
            'destfile'   : '%s/%s/config/schema/%s' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME,ldifFile),
            'remotehost' : mylocation }
            'remotehost' : myLocation }
        </call>
      <!-- Start the task using ldap task interface -->
      <call function="'StartLdapTask'">
        { 'location'   : mylocation,
        { 'location'   : myLocation,
          'taskLabel'  : 'Online Schema Task',
          'dsHost'     : dsInstanceHost,
          'dsPort'     : dsInstancePort,
@@ -2163,7 +2173,7 @@
 
      <!-- Check that the ldap task is completed -->
      <call function="'CheckLdapTask'">
        { 'location'   : mylocation,
        { 'location'   : myLocation,
          'dsTaskDn'   : taskDN,
          'dsHost'     : dsInstanceHost,
          'dsPort'     : dsInstancePort,
@@ -2174,6 +2184,185 @@
    </sequence>
  </function> 
  <!-- Total Update Task Function -->
  <function name="TotalUpdateTask">
    <function-prolog>
        This function performs a total update of a replication domain
    </function-prolog>
    <function-map-args>
      <function-arg-def name="location" type="optional" default="'%s' % STAF_REMOTE_HOSTNAME">
        <function-arg-description>
          Location of target host
        </function-arg-description>
        <function-arg-property name="type" value="hostname"/>
      </function-arg-def>
      <function-arg-def name="dsPath" type="optional" default="'%s/%s' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)">
        <function-arg-description>
          Pathname to installation root
        </function-arg-description>
        <function-arg-property name="type" value="pathname"/>
      </function-arg-def>
      <function-arg-def name="dsInstanceHost" type="optional">
        <function-arg-description>
          Directory server host name
        </function-arg-description>
        <function-arg-property name="type" value="integer"/>
      </function-arg-def>
      <function-arg-def name="dsInstancePort" type="optional">
        <function-arg-description>
          Directory server port number
        </function-arg-description>
        <function-arg-property name="type" value="integer"/>
      </function-arg-def>
      <function-arg-def name="dsInstanceDn" type="optional">
        <function-arg-description>
          Bind DN
        </function-arg-description>
        <function-arg-property name="type" value="dn"/>
      </function-arg-def>
      <function-arg-def name="dsInstancePswd" type="optional">
        <function-arg-description>
          Bind password
        </function-arg-description>
      </function-arg-def>
      <function-arg-def name="taskID" type="optional">
        <function-arg-description>
          The identifier for the task
        </function-arg-description>
        <function-arg-property name="type" value="string"/>
      </function-arg-def>
      <function-arg-def name="domainDN" type="required">
        <function-arg-description>
          The dn of the domain to be replicated
        </function-arg-description>
        <function-arg-property name="type" value="dn"/>
      </function-arg-def>
      <function-arg-def name="replicaServerID" type="required">
        <function-arg-description>
          The id of the replica server
        </function-arg-description>
        <function-arg-property name="type" value="integer"/>
      </function-arg-def>
    </function-map-args>
    <sequence>
      <script>
        myLocation=location
        myPath=dsPath
        myDataFolder='shared/data/replication'
        taskLdif='%s/../functional-tests/shared/data/totalupdate-task.ldif' % dsPath
        tmpTaskLdif='%s/totalupdate-task.ldif' % TMP_DATA_DIR
        taskDN='ds-task-id=%s,cn=Scheduled Tasks,cn=Tasks' % taskID
      </script>
      <!-- Build the total update task configuration object -->
      <script>
        ldifLines=[]
        ldifLines.append('dn: %s' % taskDN)
        ldifLines.append('objectclass: top')
        ldifLines.append('objectclass: ds-task')
        ldifLines.append('objectclass: ds-task-initialize-from-remote-replica')
        ldifLines.append('ds-task-class-name: org.opends.server.tasks.InitializeTask')
        ldifLines.append('ds-task-id: %s' % taskID)
        ldifLines.append('ds-task-initialize-domain-dn: %s' % domainDN)
        ldifLines.append('ds-task-initialize-replica-server-id: %s' % replicaServerID)
      </script>
      <!-- Write out the totalupdate-task ldif -->
      <script>
        outfile = open(tmpTaskLdif,"w")
        for line in ldifLines:
          outfile.write("%s\n" % line)
        outfile.close()
      </script>
      <!-- Copy the totalupdate-task ldif to remote host -->
      <message>'Copy totalupdate task ldif file.'</message>
      <call function="'copyFile'">
        { 'location'   : STAXServiceMachine,
          'srcfile'    : tmpTaskLdif,
          'destfile'   : taskLdif,
          'remotehost' : myLocation }
      </call>
      <script>
        STAXCode, STAXReason=STAXResult
      </script>
      <if expr="STAXCode != 0">
        <sequence>
          <message>
            'Copy of totalupdate task failed (STAXCode=%s)' % STAXCode
          </message>
          <return>[STAXCode, STAXReason]</return>
        </sequence>
      </if>
      <!-- Start the task using ldap task interface -->
      <call function="'StartLdapTask'">
        { 'location'   : myLocation,
          'dsPath'     : myPath,
          'taskLabel'  : 'Online Total Update Task',
          'dsHost'     : dsInstanceHost,
          'dsPort'     : dsInstancePort,
          'dsBindDn'   : dsInstanceDn,
          'dsBindPswd' : dsInstancePswd,
          'dsTaskLdif' : taskLdif }
      </call>
      <script>
        STAXCode, STAXReason=STAXResult
      </script>
      <if expr="STAXCode != 0">
        <sequence>
          <message>
            'Start of totalupdate task failed (Code=%s)' % STAXCode
          </message>
          <return>[STAXCode, STAXReason]</return>
        </sequence>
      </if>
      <!-- Check that the ldap task is completed -->
      <call function="'CheckLdapTask'">
        { 'location'   : myLocation,
          'dsPath'     : myPath,
          'dsTaskDn'   : taskDN,
          'dsHost'     : dsInstanceHost,
          'dsPort'     : dsInstancePort,
          'dsBindDn'   : dsInstanceDn,
          'dsBindPswd' : dsInstancePswd }
      </call>
      <script>
        STAXCode, STAXReason=STAXResult
      </script>
      <if expr="STAXCode != 0">
        <sequence>
          <message>
            'Check of totalupdate task failed (Code=%s)' % STAXCode
          </message>
          <return>[STAXCode, STAXReason]</return>
        </sequence>
      </if>
      <script>
        STAXCode=0
        STAXReason='%s: Success' % STAXCurrentFunction
      </script>
      <return>[STAXCode, STAXReason]</return>
    </sequence>
  </function>
  <function name="StartLdapTask">
    <function-prolog>
      This function starts a task using the ldap task interface
@@ -2233,7 +2422,7 @@
    
      <!-- Local variables -->
      <script>
        mylocation=location
        myLocation=location
      </script>
         
      <!-- Build the Modify Command -->
@@ -2268,7 +2457,7 @@
      <!-- Perform Task with ldapmodify -->
      <process name="'%s' % taskLabel">
        <location>'%s' % mylocation</location>
        <location>'%s' % myLocation</location>
        <command>'%s' % STAFCmd</command>
        <parms>'%s' % STAFCmdParams</parms>
        <workdir>'%s' % dsBinPath</workdir>
@@ -2279,12 +2468,19 @@
        <stderr mode="'stdout'"/>
        <returnstdout/>
      </process>
      <call function="'checkRC'">
        { 'returncode' : RC ,
          'result'     : STAXResult }
      </call>
      <script>
        STAFCmdRC=RC
        STAFCmdResult=STAXResult
      </script>
      
      <call function="'checkRC'">
        { 'returncode' : STAFCmdRC ,
          'result'     : STAFCmdResult }
      </call>
      <return>[STAFCmdRC, STAFCmdResult[0][1]]</return>
    </sequence>
    
  </function>
@@ -2342,7 +2538,7 @@
      <!-- Local variables -->
      <script>
        mylocation=location
        myLocation=location
      </script>
          
      <script>
@@ -2376,17 +2572,21 @@
        
        dsAttribute='ds-task-state'
        STAFCmdParamsList.append('%s' % dsAttribute)
        dsAttribute='ds-task-log-message'
        STAFCmdParamsList.append('%s' % dsAttribute)
           
        STAFCmdParams=' '.join(STAFCmdParamsList)
      </script>
      <script> 
        searchre = re.compile('ds-task-state: COMPLETED_SUCCESSFULLY')
        successPattern = re.compile('ds-task-state: COMPLETED_SUCCESSFULLY')
        stopErrPattern = re.compile('ds-task-state: STOPPED_BY_ERROR')
      </script>
             
      <!-- Wait for the task to be COMPLETED_SUCCESSFULLY -->
      <script>taskRC=1</script>
      <loop from="1" to="5" while="taskRC != 0">
      <loop from="1" to="10" while="taskRC != 0">
        <sequence>
        
          <message>
@@ -2395,7 +2595,7 @@
          <!-- Search for task status -->
          <process name="'Search On line Import Task'">
            <location>'%s' % mylocation</location>
            <location>'%s' % myLocation</location>
            <command>'%s' % STAFCmd</command>
            <parms>'%s' % STAFCmdParams</parms>
            <workdir>'%s' % dsBinPath</workdir>
@@ -2407,39 +2607,47 @@
          </process>
          
          <script>
            searchRC=RC
            searchResult=STAXResult
            STAFCmdRC=RC
            STAFCmdResult=STAXResult
          </script>
          <script>
            result = STAXResult[0][1]
          </script>
          <if expr='re.search(searchre, result) != None'>
          <if expr='re.search(successPattern, STAFCmdResult[0][1]) != None'>
            <sequence>
              <script>taskRC=0</script>
              <message>
                '%s' % searchResult
                '%s' % STAFCmdResult
              </message>
              <return>[taskRC, STAFCmdResult[0][1]]</return>
            </sequence>
          <elseif expr='re.search(stopErrPattern, STAFCmdResult[0][1]) != None'>
            <sequence>
              <message level="'error'">
                '%s' % STAFCmdResult
              </message>
              <return>[taskRC, STAFCmdResult[0][1]]</return>
            </sequence>
          </elseif>
          <else>
            <message level="'Warning'">
              '%s' % searchResult
              '%s' % STAFCmdResult
            </message>
          </else>
          </if>
          
          <call function="'checkRC'">
              { 'returncode' : searchRC ,
                'result'     : searchResult }
              { 'returncode' : STAFCmdRC ,
                'result'     : STAFCmdResult }
          </call>
        
          <call function="'Sleep'">
            { 'sleepForMilliSeconds' : '2000' }
          </call>
        </sequence>
      </loop>
      
      <return>[taskRC, STAFCmdResult[0][1]]</return>
    </sequence>
    
  </function>
opends/tests/functional-tests/shared/functions/environment.xml
@@ -95,7 +95,7 @@
        sys.path.append("%s/python" % TESTS_SHARED_DIR )
        from common import *
        from security import *
        from synchronization import *
        from replication import *
      </script>     
                                                
        
@@ -243,7 +243,13 @@
        <call function="'deleteFolder'">
          { 'location'   : STAF_REMOTE_HOSTNAME ,
            'foldername' : '%s' % InstanceInstallDir }
        </call>
        </call>
        <call function="'deleteFile'">
          { 'location'   : STAF_REMOTE_HOSTNAME ,
            'filename'   : '%s.zip' % InstanceInstallDir }
        </call>
      </sequence>
    </catch>
@@ -289,4 +295,4 @@
        
</stax>
</stax>
opends/tests/functional-tests/shared/functions/stafcmd.xml
@@ -70,7 +70,7 @@
        { 'returncode' : cmdRC ,
          'result'     : cmdResult }
      </call>
      <return>cmdRC</return>
      <return>[cmdRC,cmdResult]</return>
    </sequence>
  </function>
    
opends/tests/functional-tests/shared/functions/staxcmd.xml
@@ -52,10 +52,6 @@
        <request>'%s' % STAXRequest</request>
      </stafcmd>
      <call function="'checkRC'">
        { 'returncode' : RC , 'result' : STAFResult }
      </call>
      <return>RC</return>
    </sequence>
opends/tests/functional-tests/shared/functions/topology.xml
@@ -43,12 +43,20 @@
          Specifies whether the instance should be initialised with some default data.
        </function-arg-description>
        <function-arg-property name="type" value="boolean"/>
      </function-arg-def>
      </function-arg-def>
    <function-arg-def name="sharedDataFolder" type="optional" default="''">
      <function-arg-description>
        Specifies a relative folder that holds the shared data for the tests
    </function-arg-description>
    <function-arg-property name="type" value="string"/>
    </function-arg-def>
    </function-map-args>
      
    <sequence>
      <call function="'prepareInstanceCreation'"></call>
      <call function="'prepareInstanceCreation'">
        { 'groupDataDir' : sharedDataFolder }
      </call>
      <if expr="topologyDescFile == None">  
          <!-- SINGLE instance deployment: read parameters from config.py (done by default) -->
@@ -103,17 +111,17 @@
                    'dsBaseDN' : server.getBaseDn() }
                </call>
                
                <!-- Configure synchronization if required so by the server
                <!-- Configure replication if required so by the server
                  !  (i.e. server is a changelog server and/or has synchronized suffixes) -->
                <if expr="server.requiresSynchronization()">
                  <sequence>                    
                    <message> 'Instance requires SYNCHRONIZATION configuration.' </message>
                    <message> 'Instance requires REPLICATION configuration.' </message>
                    <script> 
                      serverMap = {}
                      serverMap['instance'] = server
                    </script>
                      
                    <call function="'configureSynchronization'">
                    <call function="'configureReplication'">
                      [serverMap]
                    </call>                                 
                  </sequence>
@@ -138,9 +146,16 @@
  <function name="prepareInstanceCreation">
    <function-prolog>
        This function prepares locally the necessary 
        files  to create an instance: data zip file and OpenDS zip file.
        files to create an instance: data zip file and OpenDS zip file.
    </function-prolog>    
    <function-map-args>
      <function-arg-def name="groupDataDir" type="optional" default="''">
        <function-arg-description>
          Specifies a relative folder that holds the shared data for the test group
        </function-arg-description>
        <function-arg-property name="type" value="string"/>
      </function-arg-def>
    </function-map-args>
    <sequence>
      <!-- ON LOCAL HOST: get data ready to copy to remote host -->
@@ -158,31 +173,42 @@
                'filename' : '%s/ldifdata.zip' % TMPDIR }
          </call>
        
          <script>
            testsGroupDir='%s/shared/data/%s' % (TESTS_DIR,groupDataDir)
            tmpTestsGroupDir='%s/shared/data/%s' % (TMP_DATA_DIR,groupDataDir)
          </script>
          <!-- Locally copy static data files to temporary staging area -->
          <!-- LDIF (.ldif) files -->
          <message>'Copy ldif data files'</message>
          <message>
            'Copy ldif data files to %s.' % tmpTestsGroupDir
          </message>
          <call function="'CopyFolderByExtension'">
              { 'location'   : STAXServiceMachine,
                'srcfolder'  : TESTS_DIR,
                'destfolder' : TMP_DATA_DIR,
                'srcfolder'  : testsGroupDir,
                'destfolder' : tmpTestsGroupDir,
                'extension'  : 'ldif' }
          </call>
    
          <!-- PWD (.pwd) files -->
          <message>
            'Copy pwd data files to %s.' % tmpTestsGroupDir
          </message>
          <call function="'CopyFolderByExtension'">
              { 'location'   : STAXServiceMachine,
                'srcfolder'  : TESTS_DIR,
                'destfolder' : TMP_DATA_DIR,
                'srcfolder'  : testsGroupDir,
                'destfolder' : tmpTestsGroupDir,
                'extension'  : 'pwd' }
          </call>
    
          <!-- Archive (.gz) files -->
          <message>'Copy gz data files'</message>
          <message>
            'Copy gz data files to %s.' % tmpTestsGroupDir
          </message>
          <call function="'CopyFolderByExtension'">
              { 'location'   : STAXServiceMachine,
                'srcfolder'  : TESTS_DIR,
                'destfolder' : TMP_DATA_DIR,
                'srcfolder'  : testsGroupDir,
                'destfolder' : tmpTestsGroupDir,
                'extension'  : 'gz' }
          </call>
    
@@ -336,11 +362,11 @@
          'unzipdir' : dsDir }
      </call>
      <!--- Configure DS -->
      <!--- Set up DS -->
      <message>
        'Configure DS on %s : %s/%s' % (dsHost,dsDir,OPENDSNAME)
        'Set up DS on %s : %s/%s' % (dsHost,dsDir,OPENDSNAME)
      </message>
      <call function="'ConfigureDsWithScript'">
      <call function="'SetUpDsWithScript'">
        { 'location' : dsHost, 
          'dsPath' : '%s/%s' % (dsDir, OPENDSNAME),
          'dsPort'   : dsPort,
@@ -375,9 +401,9 @@
    
    
  <function name="configureSynchronization">
  <function name="configureReplication">
    <function-prolog>
      This function configures synchronization in a given server.
      This function configures replication in a given server.
    </function-prolog>
      
    <function-list-args>
@@ -393,18 +419,18 @@
      <script>
        syncserver = syncserverMap['instance']
        
        filename = 'synchronization_conf.ldif'
        filename = 'replication_conf.ldif'
        filePath = '%s/%s' % (TMP_DATA_DIR,filename)
        dataDir = '%s/functional-tests/shared/data' % syncserver.getDir()
        
        write_synchronization_conf_ldif_file(filePath, syncserver)
        write_replication_conf_ldif_file(filePath, syncserver)
      </script>
      <message>
        'Configure synchronization on server on host %s at directory %s' % (syncserver.getHostname(),syncserver.getDir())
        'Configure replication on server on host %s at directory %s' % (syncserver.getHostname(),syncserver.getDir())
      </message>        
        
      <!-- Copy the synchronization_conf ldif to remote host -->
      <!-- Copy the replication_conf ldif to remote host -->
      <message>
        'Copy %s file from %s to %s' % (filename,TMP_DATA_DIR,dataDir)
      </message>
@@ -415,7 +441,7 @@
      </call>
        
      <!--- Add synchronization configuration entries to config.ldif in server -->
      <!--- Add replication configuration entries to config.ldif in server -->
        
      <script>
        remoteFilePath = '%s/%s' % (dataDir, filename)
@@ -435,7 +461,7 @@
      </call>       
      <message>
        'Add synchronization configuration entries in %s' % remoteFilePath
        'Add replication configuration entries in %s' % remoteFilePath
      </message>
                        
      <call function="'addEntry'">
@@ -730,4 +756,4 @@
        
  </function>
        
</stax>
</stax>
opends/tests/functional-tests/shared/functions/utils.xml
@@ -74,6 +74,9 @@
          </sequence>
        </else>
      </if>
      <return>RC</return>
    </sequence>
  </function>
@@ -310,6 +313,7 @@
      <!-- Local variables -->
      <script>
        mylocation=location
        mypath=dsPath
        myhost=dsInstanceHost
        myport=dsInstancePort
        mydn=dsInstanceDn
@@ -321,6 +325,7 @@
        <sequence>
          <call function="'SearchObject'">
            { 'location'       : mylocation,
              'dsPath'         : mypath,
              'dsInstanceHost' : myhost ,
              'dsInstancePort' : myport ,
              'dsInstanceDn'   : mydn ,
opends/tests/functional-tests/shared/python/replication.py
File was renamed from opends/tests/functional-tests/shared/python/synchronization.py
@@ -134,13 +134,13 @@
# Define the function that writes a ldif file with the synchronization configuration
# Define the function that writes a ldif file with the replication configuration
# corresponding to the given server.
def write_synchronization_conf_ldif_file(path, server):
def write_replication_conf_ldif_file(path, server):
  
  ldifLines = []
  # write the main synchronization configuration entry
  # write the main replication configuration entry
  ldifLines.append('')
    
  ldifLines.append('dn: cn=Multimaster Synchronization,cn=Synchronization Providers,cn=config')
@@ -172,7 +172,7 @@
    ldifLines.append('ds-cfg-replication-server-id: %s' % id)
  # write the domains synchronization configuration entry
  # write the domains replication configuration entry
  ldifLines.append('')
  ldifLines.append('dn: cn=domains,cn=Multimaster Synchronization,cn=Synchronization Providers,cn=config')
  ldifLines.append('objectClass: top')
@@ -217,7 +217,7 @@
# Define the function that writes a ldif file with the root suffix entry to add 
# for a given suffix.
def write_synchronization_add_root_suffix_ldif_file(path, suffix):
def write_replication_add_root_suffix_ldif_file(path, suffix):
  
  ldifLines = []
  
@@ -255,7 +255,7 @@
# Define the function that writes a ldif file with an entry to add 
# under a given suffix.
def write_synchronization_add_single_ldif_file(path, suffix):
def write_replication_add_single_ldif_file(path, suffix):
  
  ldifLines = []
  
@@ -293,41 +293,41 @@
# Define the function that writes a ldif file with the entries to add 
# under a given suffix.
def write_synchronization_add_multiple_ldif_file(path, suffix):
def write_replication_add_multiple_ldif_file(path, suffix):
  
  ldifLines = []
  ldifLines.append('dn: o=synchronization tests,%s' % suffix)
  ldifLines.append('o: synchronization tests')
  ldifLines.append('dn: o=replication tests,%s' % suffix)
  ldifLines.append('o: replication tests')
  ldifLines.append('objectclass: top')
  ldifLines.append('objectclass: organization')
  ldifLines.append('')
  ldifLines.append('dn: ou=People,o=synchronization tests,%s' % suffix)
  ldifLines.append('dn: ou=People,o=replication tests,%s' % suffix)
  ldifLines.append('ou: People')
  ldifLines.append('objectclass: top')
  ldifLines.append('objectclass: organizationalunit')
  ldifLines.append('')
  ldifLines.append('dn: ou=Groups, o=synchronization tests,%s' % suffix)
  ldifLines.append('dn: ou=Groups, o=replication tests,%s' % suffix)
  ldifLines.append('objectclass: top')
  ldifLines.append('objectclass: organizationalunit')
  ldifLines.append('ou: Groups')
  ldifLines.append('')
  ldifLines.append('dn: cn=Directory Administrators, ou=Groups, o=synchronization tests,%s' % suffix)
  ldifLines.append('dn: cn=Directory Administrators, ou=Groups, o=replication tests,%s' % suffix)
  ldifLines.append('cn: Directory Administrators')
  ldifLines.append('objectclass: top')
  ldifLines.append('objectclass: groupofuniquenames')
  ldifLines.append('ou: Groups')
  ldifLines.append('uniquemember: uid=kvaughan, ou=People, o=synchronization tests,%s' % suffix)
  ldifLines.append('uniquemember: uid=rdaugherty, ou=People, o=synchronization tests,%s' % suffix)
  ldifLines.append('uniquemember: uid=hmiller, ou=People, o=synchronization tests,%s' % suffix)
  ldifLines.append('uniquemember: uid=kvaughan, ou=People, o=replication tests,%s' % suffix)
  ldifLines.append('uniquemember: uid=rdaugherty, ou=People, o=replication tests,%s' % suffix)
  ldifLines.append('uniquemember: uid=hmiller, ou=People, o=replication tests,%s' % suffix)
  ldifLines.append('')
  ldifLines.append('dn: ou=Special Users,o=synchronization tests,%s' % suffix)
  ldifLines.append('dn: ou=Special Users,o=replication tests,%s' % suffix)
  ldifLines.append('objectclass: top')
  ldifLines.append('objectclass: organizationalUnit')
  ldifLines.append('ou: Special Users')
  ldifLines.append('description: Special Administrative Accounts')
  ldifLines.append('')
  ldifLines.append('dn: uid=scarter,ou=People,o=synchronization tests,%s' % suffix)
  ldifLines.append('dn: uid=scarter,ou=People,o=replication tests,%s' % suffix)
  ldifLines.append('cn: Sam Carter')
  ldifLines.append('sn: Carter')
  ldifLines.append('givenname: Sam')
@@ -358,7 +358,7 @@
# Define the function that writes a ldif file with the modify to operate
# on an entry in a given suffix.
def write_synchronization_mod_ldif_file(path, dn, mod_type, attr_type, attr_value):
def write_replication_mod_ldif_file(path, dn, mod_type, attr_type, attr_value):
  
  ldifLines = []
@@ -376,4 +376,4 @@
          
  outfile.close()  
  
opends/tests/functional-tests/testcases/replication/basic/replication_basic.xml
New file
@@ -0,0 +1,248 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE stax SYSTEM "../../../stax.dtd">
<!--
 ! CDDL HEADER START
 !
 ! The contents of this file are subject to the terms of the
 ! Common Development and Distribution License, Version 1.0 only
 ! (the "License").  You may not use this file except in compliance
 ! with the License.
 !
 ! You can obtain a copy of the license at
 ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
 ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
 ! See the License for the specific language governing permissions
 ! and limitations under the License.
 !
 ! When distributing Covered Code, include this CDDL HEADER in each
 ! file and include the License file at
 ! trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
 ! add the following below this CDDL HEADER, with the fields enclosed
 ! by brackets "[]" replaced with your own identifying information:
 !      Portions Copyright [yyyy] [name of copyright owner]
 !
 ! CDDL HEADER END
 !
 !      Portions Copyright 2006-2007 Sun Microsystems, Inc.
 ! -->
<stax>
  <defaultcall function="replication_basic"/>
  <function name="replication_basic">
    <sequence>
      <block name="'basic'">
        <sequence>
          <script>
            if not CurrentTestPath.has_key('group'):
              CurrentTestPath['group']='replication'
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
          <call function="'testSuite_Preamble'"/>
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/replication/replication_setup.xml' % (TESTS_DIR)"/>
          <call function="'replication_setup'" />
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/replication/basic/replication_basic_setup.xml' % (TESTS_DIR)"/>
          <call function="'replication_basic_setup'" />
          <!--- Test Case information
          #@TestMarker          Replication Basic Tests
          #@TestName            Replication: Basic: Add Entry
          #@TestID                  Add Entry
          #@TestPurpose         Check that an entry add is well propagated by replication.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Replication: Basic: Add Entry'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Replication: Basic: Add Entry. Check that an added entry is well propagated by replication.'
              </message>
              <call function="'addEntry'">
                { 'location'       : clientHost,
                  'dsPath'         : clientPath,
                  'dsInstanceHost' : server1.getHostname(),
                  'dsInstancePort' : server1.getPort(),
                  'dsInstanceDn'   : server1.getRootDn(),
                  'dsInstancePswd' : server1.getRootPwd(),
                  'entryToBeAdded' : '%s/replication_add_root_suffix.ldif' % clientDataDir }
              </call>
              <call function="'checkRC'">
                  { 'returncode' : RC,
                    'result'     : STAXResult }
              </call>
              <call function="'SearchObject'">
                { 'location' : clientHost,
                  'dsPath' : clientPath,
                  'dsInstanceHost'   : server2.getHostname() ,
                  'dsInstancePort'   : server2.getPort() ,
                  'dsInstanceDn'     : server2.getRootDn() ,
                  'dsInstancePswd'   : server2.getRootPwd() ,
                  'dsBaseDN'         : synchroSuffix ,
                  'dsFilter'         : 'objectclass=*' }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC,
                    'result'     : STAXResult,
                    'expected'   : 0 }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Replication Basic Tests
          #@TestName            Replication: Basic: Modify Entry
          #@TestID                  Modify Entry
          #@TestPurpose         Check that an entry modify is well propagated by replication.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Replication: Basic: Modify Entry'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Replication: Basic: Modify Entry. Check that an entry modify is well propagated by replication.'
              </message>
              <call function="'addEntry'">
                { 'location'        : clientHost,
                  'dsPath'          : clientPath,
                  'dsInstanceHost'  : server1.getHostname(),
                  'dsInstancePort'  : server1.getPort() ,
                  'dsInstanceDn'    : server1.getRootDn() ,
                  'dsInstancePswd'  : server1.getRootPwd() ,
                  'entryToBeAdded'  : '%s/replication_add_single.ldif' % clientDataDir }
              </call>
              <call function="'checkRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'modifyEntry'">
                { 'location'          : clientHost,
                  'dsPath'            : clientPath,
                  'dsInstanceHost'    : server1.getHostname() ,
                  'dsInstancePort'    : server1.getPort() ,
                  'dsInstanceDn'      : server1.getRootDn() ,
                  'dsInstancePswd'    : server1.getRootPwd() ,
                  'entryToBeModified' : '%s/replication_mod.ldif' % clientDataDir }
              </call>
              <call function="'checkRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'SearchObject'">
                { 'location'         : clientHost,
                  'dsPath'           : clientPath,
                  'dsInstanceHost'   : server2.getHostname() ,
                  'dsInstancePort'   : server2.getPort() ,
                  'dsInstanceDn'     : server2.getRootDn() ,
                  'dsInstancePswd'   : server2.getRootPwd() ,
                  'dsBaseDN'         : entryDn,
                  'dsFilter'         : '%s=%s' % (attr_type,attr_value) }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult ,
                    'expected'   : 0 }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Replication Basic Tests
          #@TestName            Replication: Basic: Delete Entry
          #@TestID                  Delete Entry
          #@TestPurpose         Check that an entry delete is well propagated by replication.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Replication: Basic: Delete Entry'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Replication: Basic: Delete Entry. Check that an entry delete is well propagated by replication.'
              </message>
              <call function="'DeleteEntry'">
                { 'location'         : clientHost,
                  'dsPath'           : clientPath,
                  'dsInstanceHost'   : server1.getHostname() ,
                  'dsInstancePort'   : server1.getPort() ,
                  'dsInstanceDn'     : server1.getRootDn() ,
                  'dsInstancePswd'   : server1.getRootPwd() ,
                  'dsBaseDN'         : entryDn }
              </call>
              <call function="'checkRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'SearchObject'">
                { 'location' : clientHost,
                  'dsPath' : clientPath,
                  'dsInstanceHost'   : server2.getHostname() ,
                  'dsInstancePort'   : server2.getPort() ,
                  'dsInstanceDn'     : server2.getRootDn() ,
                  'dsInstancePswd'   : server2.getRootPwd() ,
                  'dsBaseDN'         : entryDn,
                  'dsFilter'         : 'objectclass=*' }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult ,
                    'expected'   : 32 }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/replication/replication_cleanup.xml' % (TESTS_DIR)"/>
          <call function="'replication_cleanup'" />
          <call function="'testSuite_Postamble'"/>
        </sequence>
      </block>
    </sequence>
  </function>
</stax>
opends/tests/functional-tests/testcases/replication/basic/replication_basic_setup.xml
New file
@@ -0,0 +1,122 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE stax SYSTEM "../../../stax.dtd">
<!--
 ! CDDL HEADER START
 !
 ! The contents of this file are subject to the terms of the
 ! Common Development and Distribution License, Version 1.0 only
 ! (the "License").  You may not use this file except in compliance
 ! with the License.
 !
 ! You can obtain a copy of the license at
 ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
 ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
 ! See the License for the specific language governing permissions
 ! and limitations under the License.
 !
 ! When distributing Covered Code, include this CDDL HEADER in each
 ! file and include the License file at
 ! trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
 ! add the following below this CDDL HEADER, with the fields enclosed
 ! by brackets "[]" replaced with your own identifying information:
 !      Portions Copyright [yyyy] [name of copyright owner]
 !
 ! CDDL HEADER END
 !
 !      Portions Copyright 2006-2007 Sun Microsystems, Inc.
 ! -->
<stax>
  <defaultcall function="replication_basic_setup"/>
  <function name="replication_basic_setup">
    <sequence>
      <!--- Setup the client for the Basic test suite -->
      <message>
        'Replication: Basic: Setup. Get client ready for Basic tests.'
      </message>
      <script>
        synchroSuffix = server1.getSynchronizedSuffixList()[0].getSuffixDn()
        entryDn = 'uid=scarter,%s' % synchroSuffix
        mod_type = 'replace'
        attr_type = 'roomnumber'
        attr_value = '1111'
      </script>
      <script>
        filename = 'replication_add_root_suffix.ldif'
        filePath = '%s/%s' % (TMP_DATA_DIR,filename)
        write_replication_add_root_suffix_ldif_file(filePath, synchroSuffix)
      </script>
      <!-- Copy the replication_add_root_suffix ldif to client host -->
      <message>
        'Copy %s file from %s to %s' % (filename,TMP_DATA_DIR,clientDataDir)
      </message>
      <call function="'copyFile'">
        { 'srcfile'    : filePath,
          'destfile'   : '%s/%s' % (clientDataDir,filename),
          'remotehost' : client.getHostname() }
      </call>
      <script>
        filename = 'replication_add_single.ldif'
        filePath = '%s/%s' % (TMP_DATA_DIR,filename)
        write_replication_add_single_ldif_file(filePath, synchroSuffix)
      </script>
      <!-- Copy the replication_add_single ldif to client host -->
      <message>
        'Copy %s file from %s to %s' % (filename,TMP_DATA_DIR,clientDataDir)
      </message>
      <call function="'copyFile'">
        { 'srcfile'    : filePath,
          'destfile'   : '%s/%s' % (clientDataDir,filename),
          'remotehost' : client.getHostname() }
      </call>
      <script>
        filename = 'replication_add_multiple.ldif'
        filePath = '%s/%s' % (TMP_DATA_DIR,filename)
        write_replication_add_multiple_ldif_file(filePath, synchroSuffix)
      </script>
      <!-- Copy the replication_add_multiple ldif to client host -->
      <message>
        'Copy %s file from %s to %s' % (filename,TMP_DATA_DIR,clientDataDir)
      </message>
      <call function="'copyFile'">
        { 'srcfile'    : filePath,
          'destfile'   : '%s/%s' % (clientDataDir,filename),
          'remotehost' : client.getHostname() }
      </call>
      <script>
        filename = 'replication_mod.ldif'
        filePath = '%s/%s' % (TMP_DATA_DIR,filename)
        write_replication_mod_ldif_file(filePath, entryDn, mod_type, attr_type, attr_value)
      </script>
      <!-- Copy the replication_mod ldif to client host -->
      <message>
        'Copy %s file from %s to %s' % (filename,TMP_DATA_DIR,clientDataDir)
      </message>
      <call function="'copyFile'">
        { 'srcfile'    : filePath,
          'destfile'   : '%s/%s' % (clientDataDir,filename),
          'remotehost' : client.getHostname() }
      </call>
      <call function="'checkRC'">
        { 'returncode' : RC ,
          'result'     : STAXResult }
      </call>
    </sequence>
  </function>
</stax>
opends/tests/functional-tests/testcases/replication/replication.xml
old mode 100755 new mode 100644
File was renamed from opends/tests/functional-tests/testcases/synchronization/synchronization.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE stax SYSTEM "../../stax.dtd">
<!DOCTYPE stax SYSTEM "../../../stax.dtd">
<!--
 ! CDDL HEADER START
 !
@@ -27,35 +27,42 @@
 ! -->
<stax>
  <defaultcall function="main_synchronization"/>
  <defaultcall function="main_replication"/>
  <function name="main_synchronization">
  <function name="main_replication">
    <sequence>
      <block name="'synchronization'">
      <block name="'replication'">
        <sequence>
          <script>
            CurrentTestPath['group']='synchronization'
          </script>
          <call function="'testGroup_Preamble'"/>
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/synchronization/basic/synchronization_basic.xml' % (TESTS_DIR)"/>
          <call function="'synchronization_basic'" />
            file="'%s/environment.xml' % (TESTS_FUNCTIONS_DIR)" />
          <call function="'loadEnvironment'" />
          <script>
            CurrentTestPath={}
            envAlreadyLoaded='true'
            CurrentTestPath['group']='replication'
          </script>
          <call function="'testGroup_Preamble'"/>
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/replication/totalupdate/totalupdate.xml' % (TESTS_DIR)"/>
          <call function="'main_totalupdate'" />
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/replication/basic/replication_basic.xml' % (TESTS_DIR)"/>
          <call function="'replication_basic'" />
          <call function="'testGroup_Postamble'"/>
        </sequence>
      </block>
    </sequence>
  </function>
opends/tests/functional-tests/testcases/replication/replication_cleanup.xml
New file
@@ -0,0 +1,93 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE stax SYSTEM "../../../stax.dtd">
<!--
 ! CDDL HEADER START
 !
 ! The contents of this file are subject to the terms of the
 ! Common Development and Distribution License, Version 1.0 only
 ! (the "License").  You may not use this file except in compliance
 ! with the License.
 !
 ! You can obtain a copy of the license at
 ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
 ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
 ! See the License for the specific language governing permissions
 ! and limitations under the License.
 !
 ! When distributing Covered Code, include this CDDL HEADER in each
 ! file and include the License file at
 ! trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
 ! add the following below this CDDL HEADER, with the fields enclosed
 ! by brackets "[]" replaced with your own identifying information:
 !      Portions Copyright [yyyy] [name of copyright owner]
 !
 ! CDDL HEADER END
 !
 !      Portions Copyright 2006-2007 Sun Microsystems, Inc.
 ! -->
<stax>
  <defaultcall function="replication_cleanup"/>
  <function name="replication_cleanup">
    <sequence>
      <block name="'replication-cleanup'">
        <sequence>
          <script>
            basicTopologyFile = '%s/config/replication/basic_topology.txt' % TESTS_DIR
          </script>
          <!-- Stop the servers in the topology -->
          <iterate var="server" in="_topologyServerList">
            <sequence>
              <message>
                 'Stop DS on host %s running on port %s' % (server.getHostname(),server.getPort())
              </message>
              <!--- Stop DS -->
              <call function="'StopDsWithScript'">
                { 'location'  : server.getHostname(),
                  'dsHost' : server.getHostname(),
                  'dsPath' : '%s/%s' % (server.getDir(),OPENDSNAME),
                  'dsPort'    : server.getPort(),
                  'dsBindDN'  : server.getRootDn(),
                  'dsBindPwd' : server.getRootPwd() }
              </call>
              <call function="'checkRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
            </sequence>
        </iterate>
        <!-- Remove  the topology created for the test suite -->
          <message>
            'Remove DS topology created for the Synchronization Basic Test Suite'
          </message>
          <call function="'removeTopology'">
            { 'multipleInstanceTopology' : True }
          </call>
          <call function="'checkRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
        </sequence>
      </block>
    </sequence>
  </function>
</stax>
opends/tests/functional-tests/testcases/replication/replication_setup.xml
New file
@@ -0,0 +1,114 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE stax SYSTEM "../../../stax.dtd">
<!--
 ! CDDL HEADER START
 !
 ! The contents of this file are subject to the terms of the
 ! Common Development and Distribution License, Version 1.0 only
 ! (the "License").  You may not use this file except in compliance
 ! with the License.
 !
 ! You can obtain a copy of the license at
 ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
 ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
 ! See the License for the specific language governing permissions
 ! and limitations under the License.
 !
 ! When distributing Covered Code, include this CDDL HEADER in each
 ! file and include the License file at
 ! trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
 ! add the following below this CDDL HEADER, with the fields enclosed
 ! by brackets "[]" replaced with your own identifying information:
 !      Portions Copyright [yyyy] [name of copyright owner]
 !
 ! CDDL HEADER END
 !
 !      Portions Copyright 2006-2007 Sun Microsystems, Inc.
 ! -->
<stax>
  <defaultcall function="replication_setup"/>
  <function name="replication_setup">
    <sequence>
      <block name="'replication-setup'">
        <sequence>
          <script>
            basicTopologyFile = '%s/config/replication/basic_topology.txt' % TESTS_DIR
          </script>
          <message>
             'Create DS topology as described in %s' % basicTopologyFile
          </message>
          <call function="'createTopology'">
            { 'topologyDescFile' : basicTopologyFile,
              'sharedDataFolder' : 'replication' }
          </call>
          <call function="'checkRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
          </call>
          <!-- Setup variables -->
          <script>
            client = _topologyServerList[0]
            clientHost = client.getHostname()
            clientPath = '%s/%s' % (client.getDir(),OPENDSNAME)
            clientDataDir = '%s/functional-tests/shared/data' % client.getDir()
            server1 = _topologyServerList[0]
            server2 = _topologyServerList[1]
          </script>
          <!-- Start the servers in the topology -->
          <iterate var="server" in="_topologyServerList">
            <sequence>
              <message>
                'Start DS on host  %s to run on port %s' % (server.getHostname(),server.getPort())
              </message>
              <!--- Start DS -->
              <call function="'StartDsWithScript'">
                { 'location'  : server.getHostname(),
                  'dsPath' : '%s/%s' % (server.getDir(),OPENDSNAME) }
              </call>
              <call function="'checkRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
            </sequence>
          </iterate>
          <!-- Check that the servers in the topology started -->
          <iterate var="server" in="_topologyServerList">
            <!--- Check that DS started -->
            <call function="'isAlive'">
              { 'location' : server.getHostname(),
                'dsPath' : '%s/%s' % (server.getDir(),OPENDSNAME),
                'dsInstanceHost' : server.getHostname(),
                'dsInstancePort' : server.getPort(),
                'dsInstanceDn' : server.getRootDn(),
                'dsInstancePswd' : server.getRootPwd(),
                'noOfLoops' : 5 ,
                'noOfMilliSeconds' : 2000 }
            </call>
          </iterate>
        </sequence>
      </block>
    </sequence>
  </function>
</stax>
opends/tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml
New file
@@ -0,0 +1,172 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE stax SYSTEM "../../../stax.dtd">
<!--
 ! CDDL HEADER START
 !
 ! The contents of this file are subject to the terms of the
 ! Common Development and Distribution License, Version 1.0 only
 ! (the "License").  You may not use this file except in compliance
 ! with the License.
 !
 ! You can obtain a copy of the license at
 ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
 ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
 ! See the License for the specific language governing permissions
 ! and limitations under the License.
 !
 ! When distributing Covered Code, include this CDDL HEADER in each
 ! file and include the License file at
 ! trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
 ! add the following below this CDDL HEADER, with the fields enclosed
 ! by brackets "[]" replaced with your own identifying information:
 !      Portions Copyright [yyyy] [name of copyright owner]
 !
 ! CDDL HEADER END
 !
 !      Portions Copyright 2006-2007 Sun Microsystems, Inc.
 ! -->
<stax>
  <defaultcall function="main_totalupdate"/>
  <function name="main_totalupdate">
    <sequence>
      <block name="'total-update'">
        <sequence>
          <script>
            if not CurrentTestPath.has_key('group'):
              CurrentTestPath['group']='replication'
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
          <call function="'testSuite_Preamble'"/>
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/replication/replication_setup.xml' % (TESTS_DIR)"/>
          <call function="'replication_setup'" />
          <script>
            server1DataDir = '%s/functional-tests/shared/data' % server1.getDir()
          </script>
          <!--- Test Case : Total Update -->
          <testcase name="'Replication: Total Update: Simple LDIF'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <!-- Stop the Directory Server -->
              <call function="'StopDsWithScript'">
                { 'location'  : server1.getHostname(),
                  'dsPath'    : '%s/%s' % (server1.getDir(),OPENDSNAME),
                  'dsHost'    : server1.getHostname(),
                  'dsPort'    : server1.getPort(),
                  'dsBindDN'  : server1.getRootDn(),
                  'dsBindPwd' : server1.getRootPwd() }
              </call>
              <!-- Check that the Directory Server is stopped -->
              <!-- Import data into Directory Server -->
              <call function="'ImportLdifWithScript'">
                { 'location'     : server1.getHostname() ,
                  'dsPath'       : '%s/%s' % (server1.getDir(),OPENDSNAME),
                  'dsLdifFile'   : '%s/replication/Airius.ldif' % server1DataDir }
              </call>
              <!-- Check some data was imported into Directory Server -->
              <call function="'checkImport'">
                { 'location'  : server1.getHostname(),
                  'dsPath'    : '%s/%s' % (server1.getDir(),OPENDSNAME),
                  'dsHost'    : server1.getHostname(),
                  'dsPort'    : server1.getPort(),
                  'dsDn'      : server1.getRootDn(),
                  'dsPswd'    : server1.getRootPwd(),
                  'expectedEntries' : ['uid=scarter,ou=People,o=example',
                                       'uid=dmiller, ou=People, o=example',
                                       'uid=rhunt, ou=People, o=example'] }
              </call>
              <!-- Start the Directory Server -->
              <call function="'StartDsWithScript'">
                { 'location'  : server1.getHostname(),
                  'dsPath'    : '%s/%s' % (server1.getDir(),OPENDSNAME) }
              </call>
              <!-- Wait for DS to start -->
              <call function="'isAlive'">
                { 'location'         : server1.getHostname(),
                  'dsPath'           : '%s/%s' % (server1.getDir(),OPENDSNAME),
                  'dsInstanceHost'   : server1.getHostname() ,
                  'dsInstancePort'   : server1.getPort() ,
                  'dsInstanceDn'     : server1.getRootDn() ,
                  'dsInstancePswd'   : server1.getRootPwd() ,
                  'noOfLoops'        : 10 ,
                  'noOfMilliSeconds' : 2000 }
              </call>
              <!-- Perform the total update -->
              <call function="'TotalUpdateTask'">
                { 'location'        : server1.getHostname(),
                  'dsPath'          : '%s/%s' % (server2.getDir(),OPENDSNAME),
                  'dsInstanceHost'  : server2.getHostname(),
                  'dsInstancePort'  : server2.getPort(),
                  'dsInstanceDn'    : server2.getRootDn(),
                  'dsInstancePswd'  : server2.getRootPwd(),
                  'taskID'          : 'task',
                  'domainDN'        : 'o=example',
                  'replicaServerID' : '1' }
              </call>
              <script>
                STAXCode, STAXReason=STAXResult
              </script>
              <if expr="STAXCode != 0">
                <sequence>
                  <message>
                    'Totalupdate failed (Code=%s,Reason=%s)' % (STAXCode,STAXReason)
                  </message>
                  <tcstatus result="'fail'" />
                </sequence>
              </if>
              <!-- Verify the total update -->
              <call function="'checkImport'">
                { 'location'  : server1.getHostname(),
                  'dsPath'    : '%s/%s' % (server1.getDir(),OPENDSNAME),
                  'dsHost'    : server1.getHostname(),
                  'dsPort'    : server1.getPort(),
                  'dsDn'      : server1.getRootDn(),
                  'dsPswd'    : server1.getRootPwd(),
                  'expectedEntries' : ['uid=scarter,ou=People,o=example',
                                       'uid=dmiller, ou=People, o=example',
                                       'uid=rhunt, ou=People, o=example'],
                  'startDS'  : 'no' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/replication/replication_cleanup.xml' % (TESTS_DIR)"/>
          <call function="'replication_cleanup'" />
          <call function="'testSuite_Postamble'"/>
        </sequence>
      </block>
    </sequence>
  </function>
</stax>
opends/tests/functional-tests/testcases/runFuncTests.xml
@@ -38,9 +38,7 @@
        file="'%s/environment.xml' % (TESTS_FUNCTIONS_DIR)" />
      <call function="'loadEnvironment'" />  
      <!--- The Functional Tests -->
      <!-- The Functional Tests -->
        
      <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
        file="'%s/testcases/security/security.xml' % (TESTS_DIR)" />
@@ -63,10 +61,8 @@
      <call function="'main_schema'" />
      <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
        file="'%s/testcases/synchronization/synchronization.xml' % (TESTS_DIR)" />
      <call function="'main_synchronization'" />
        file="'%s/testcases/replication/replication.xml' % (TESTS_DIR)" />
      <call function="'main_replication'" />
    </sequence>
  </function>
opends/tests/functional-tests/testcases/setup/setup.xml
@@ -147,12 +147,12 @@
              'unzipdir'   : '%s' % DIRECTORY_INSTANCE_DIR }
          </call>
    
          <!--- Configure DS -->
          <!--- Setup DS -->
          <sequence>
            <message>
             'Configuring DS on %s' % STAF_REMOTE_HOSTNAME
             'Set up DS on %s' % STAF_REMOTE_HOSTNAME
            </message>
            <call function="'ConfigureDsWithScript'">
            <call function="'SetUpDsWithScript'">
                { 'location'  : STAF_REMOTE_HOSTNAME,
                  'dsPort'    : DIRECTORY_INSTANCE_PORT,
                  'dsBindDN'  : DIRECTORY_INSTANCE_DN,
opends/tests/functional-tests/testcases/synchronization/basic/synchronization_basic.xml
File was deleted
opends/tests/functional-tests/testcases/synchronization/basic/synchronization_basic_bob.xml
File was deleted
opends/tests/functional-tests/testcases/synchronization/basic/synchronization_basic_setup.xml
File was deleted