Upgrade-Revert 2-server replication topology



Test purpose: Test upgrade/revert facility over a 2-server replicated topology

Test summary: Set up topology using OpenDS “version-0” zip package; upgrade the servers in the topology to OpenDS “version-1”; revert the servers in the topology to original “version-0”.

Test steps:

  1. Pick up OpenDS zip package, version-0

  2. Set up 1st server using GUI

  3. Set up 2nd server using GUI

  4. Add one entry on each server instance

  5. Upgrade 1st server to version-1

  6. Add one entry on each server instance

  7. Upgrade 2nd server to version-1

  8. Add entry on each server instance

  9. Restart server instances

  10. Delete entry on one server

  11. Downgrade (revert) 1st server

  12. Delete entry on server instance

  13. Downgrade 2nd server

  14. Delete entry on server instance

  15. Restart servers

  16. Delete entry on server instance







0. Pick up OpenDS zip package, version-0


$ start-ds -F

OpenDS Directory Server 1.0.0
Build ID:                 20080125094425Z
Major Version:           1
Minor Version:           0
Point Version:           0
Version Qualifier:
Revision Number:         3751
Fix IDs:
Debug Build:             false
Build OS:                SunOS 5.10 sparc
Build User:              ugaston
Build Java Version:      1.6.0
Build Java Vendor:       Sun Microsystems Inc.
Build JVM Version:       1.6.0-b105
Build JVM Vendor:        Sun Microsystems Inc.
Upgrade Event IDs:       1,2,3,4,5




1. Set up 1st server using setup GUI:

    Settings:
    - ldap: 1389
    - ldaps: 1636
    - self-signed certificate
    - startTLS enabled
   
    Topology options:
    - part of replication topology
    - replication port: 1212

    Directory Data:
    - base DN: o=example
    - import file: Short_Example.ldif (100 entries)



2. Set up 2nd server using setup GUI:

    Settings:
    - ldap: 2389
    - ldaps: 2636
    - self-signed certificate
    - startTLS enabled

    Topology options:
    - part of replication topology
    - replication port: 2323
    - already another server in topology (port: 1389)

    Global admin ID: admin
    Global admin pwd: admin

    Data Replication:
    - create local instance of existing base DN and configure replication (o=example, 100 entries)



3. Add one entry on each server instance:


$ ./ldapsearch -p 1389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l

     100
$ ./ldapsearch -p 2389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l
     100




$ ./ldapmodify -a  -p 1389 -D "cn=directory manager" -w secret12
dn: uid=pmoriarty, ou=People, o=example
cn: Professor Moriarty
sn: Moriarty
givenname: Professor
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: London
uid: pmoriarty
userpassword: jajejijoju

Processing ADD request for uid=pmoriarty,ou=People,o=example
ADD operation successful for DN uid=pmoriarty,ou=People,o=example
$




$ ./ldapsearch -p 1389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l

     101
$ ./ldapsearch -p 2389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l
     101




$ ./ldapmodify -a  -p 2389 -D "cn=directory manager" -w secret12
dn: uid=dwatson, ou=People, o=example
cn: Doctor Watson
sn: Watson
givenname: Doctor
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Baker Street
uid: dwatson
userpassword: elementary


Processing ADD request for uid=dwatson,ou=People,o=example
ADD operation successful for DN uid=dwatson,ou=People,o=example
$




$ ./ldapsearch -p 1389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l

     102
$ ./ldapsearch -p 2389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l
     102




4. Upgrade 1st server to version-1:


$ upgrade
Would you like to upgrade this installation to a newer version or revert to an
older version?

    1)  Upgrade to a newer version
    2)  Revert to a previous version

Enter choice [1]:
Enter the name and path of the OpenDS install file (.zip):
/usr/project/iplanet/ws/opends.ug/opends/build/package/OpenDS-1.0.0.zip
Initializing Upgrade ..... Done.
Calculating Schema Customizations ..... Done.
Calculating Configuration Customizations ..... Done.
Backing Up Files ..... Done.
Upgrading Components ..... Done.
Preparing Customizations ..... Done.
Applying Schema Customizations ..... Done.
Applying Configuration Customizations ..... Done.
Verifying Upgrade ..... Done.
Starting Directory Server ..... Done.
Cleaning Up ..... Done.
Recording Upgrade History ..... Done.
See /amaiur/servers/server1/OpenDS-1.0.0/history/log for a history installation
history.
OpenDS QuickUpgrade Completed Successfully.  The OpenDS installation at
/amaiur/servers/server1/OpenDS-1.0.0 has now been upgraded to version OpenDS
Directory Server 1.0.0 (Build ID: 20080128143348Z).

See /var/tmp/opends-upgrade-57522.log for a detailed log of this operation.


$ tail /var/tmp/opends-upgrade-57522.log
Jan 28, 2008 4:54:39 PM org.opends.quicksetup.util.FileManager$DeleteOperation apply
INFO: deleting  directory /amaiur/servers/server1/OpenDS-1.0.0/tmp/upgrade
Jan 28, 2008 4:54:39 PM org.opends.quicksetup.upgrader.Upgrader run
INFO: clean up complete
Jan 28, 2008 4:54:39 PM org.opends.quicksetup.upgrader.Upgrader run
INFO: recording upgrade history
Jan 28, 2008 4:54:39 PM org.opends.quicksetup.upgrader.Upgrader run
INFO: history recorded
Jan 28, 2008 4:54:39 PM org.opends.quicksetup.upgrader.Upgrader run
INFO: upgrade completed successfully



$ grep ERROR /var/tmp/opends-upgrade-57522.log
INFO: server: [28/Jan/2008:16:52:46 +0100] category=SYNC severity=SEVERE_ERROR msgID=14942294 msg=Replication server caught exception while listening for client connections Socket closed
INFO: server: [28/Jan/2008:16:52:46 +0100] category=SYNC severity=SEVERE_ERROR msgID=-1 msg=Error during the changelog database trimming or flush process. The Changelog service is going to shutdown(JE 3.2.70) Can't open a cursor Database state can't be DbState.CLOSED must be DbState.OPEN (Database.java:1079 Database.java:369 ReplicationDB.java:365 ReplicationDB.java:315 ReplicationDB.java:206 DbHandler.java:408 DbHandler.java:358 Thread.java:619)
INFO: server: [28/Jan/2008:16:52:46 +0100] category=SYNC severity=SEVERE_ERROR msgID=-1 msg=Error closing the changelog database :(JE 3.2.70) There is 1 open Database in the Environment.



$ start-ds -F
OpenDS Directory Server 1.0.0
Build ID:                 20080128143348Z
Major Version:           1
Minor Version:           0
Point Version:           0
Version Qualifier:
Revision Number:         3777
Fix IDs:
Debug Build:             false
Build OS:                SunOS 5.10 sparc
Build User:              ugaston
Build Java Version:      1.6.0
Build Java Vendor:       Sun Microsystems Inc.
Build JVM Version:       1.6.0-b105
Build JVM Vendor:        Sun Microsystems Inc.
Upgrade Event IDs:       1,2,3,4,5




$ ./ldapsearch -p 1389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l

     102
$ ./ldapsearch -p 2389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l
     102




5. Add one entry on each server instance:


$ ./ldapmodify -a  -p 1389 -D "cn=directory manager" -w secret12
dn: uid=ilestrade, ou=People, o=example
cn: Inspecteur Lestrade
sn: Lestrade
givenname: Inspecteur
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Scotland Yard
uid: ilestrade
userpassword: illcatchyou

Processing ADD request for uid=ilestrade,ou=People,o=example
ADD operation successful for DN uid=ilestrade,ou=People,o=example
$




$ ./ldapsearch -p 1389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l

     103
$ ./ldapsearch -p 2389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l
     103




$ ./ldapmodify -a  -p 2389 -D "cn=directory manager" -w secret12
dn: uid=acdoyle, ou=People, o=example
cn: Arthur Connan Doyle
sn: Doyle
givenname: Arthur Connan
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: London
uid: acdoyle
userpassword: sherlock


Processing ADD request for uid=acdoyle,ou=People,o=example
ADD operation successful for DN uid=acdoyle,ou=People,o=example
$




$ ./ldapsearch -p 1389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l

     104
$ ./ldapsearch -p 2389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l
     104




6. Upgrade 2nd server to version-1:


$ upgrade
Would you like to upgrade this installation to a newer version or revert to an
older version?

    1)  Upgrade to a newer version
    2)  Revert to a previous version

Enter choice [1]:
Enter the name and path of the OpenDS install file (.zip):
/usr/project/iplanet/ws/opends.ug/opends/build/package/OpenDS-1.0.0.zip
Initializing Upgrade ..... Done.
Calculating Schema Customizations ..... Done.
Calculating Configuration Customizations ..... Done.
Backing Up Files ..... Done.
Upgrading Components ..... Done.
Preparing Customizations ..... Done.
Applying Schema Customizations ..... Done.
Applying Configuration Customizations ..... Done.
Verifying Upgrade ..... Done.
Starting Directory Server ..... Done.
Cleaning Up ..... Done.
Recording Upgrade History ..... Done.
See /amaiur/servers/server2/OpenDS-1.0.0/history/log for a history installation
history.
OpenDS QuickUpgrade Completed Successfully.  The OpenDS installation at
/amaiur/servers/server2/OpenDS-1.0.0 has now been upgraded to version OpenDS
Directory Server 1.0.0 (Build ID: 20080128143348Z).

See /var/tmp/opends-upgrade-28222.log for a detailed log of this operation.


$ tail /var/tmp/opends-upgrade-28222.log
Jan 28, 2008 5:16:07 PM org.opends.quicksetup.util.FileManager$DeleteOperation apply
INFO: deleting  directory /amaiur/servers/server2/OpenDS-1.0.0/tmp/upgrade
Jan 28, 2008 5:16:07 PM org.opends.quicksetup.upgrader.Upgrader run
INFO: clean up complete
Jan 28, 2008 5:16:07 PM org.opends.quicksetup.upgrader.Upgrader run
INFO: recording upgrade history
Jan 28, 2008 5:16:07 PM org.opends.quicksetup.upgrader.Upgrader run
INFO: history recorded
Jan 28, 2008 5:16:07 PM org.opends.quicksetup.upgrader.Upgrader run
INFO: upgrade completed successfully


$ grep ERROR /var/tmp/opends-upgrade-28222.log
INFO: server: [28/Jan/2008:17:14:14 +0100] category=SYNC severity=SEVERE_ERROR msgID=14942294 msg=Replication server caught exception while listening for client connections Socket closed



$ start-ds -F
OpenDS Directory Server 1.0.0
Build ID:                 20080128143348Z
Major Version:           1
Minor Version:           0
Point Version:           0
Version Qualifier:
Revision Number:         3777
Fix IDs:
Debug Build:             false
Build OS:                SunOS 5.10 sparc
Build User:              ugaston
Build Java Version:      1.6.0
Build Java Vendor:       Sun Microsystems Inc.
Build JVM Version:       1.6.0-b105
Build JVM Vendor:        Sun Microsystems Inc.
Upgrade Event IDs:       1,2,3,4,5




$ ./ldapsearch -p 1389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l

     104
$ ./ldapsearch -p 2389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l
     104




7. Add entry on each server instance:


$ ./ldapmodify -a  -p 2389 -D "cn=directory manager" -w secret12
dn: uid=hpoirot, ou=People, o=example
cn: Hercules Poirot
sn: Poirot
givenname: Hercules
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Belgium
uid: hpoirot
userpassword: hastings

Processing ADD request for uid=hpoirot,ou=People,o=example
ADD operation successful for DN uid=hpoirot,ou=People,o=example
$




$ ./ldapsearch -p 1389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l

     105
$ ./ldapsearch -p 2389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l
     105




$ ./ldapmodify -a  -p 1389 -D "cn=directory manager" -w secret12
dn: uid=mmarple, ou=People, o=example
cn: Miss Marple
sn: Marple
givenname: Miss
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Accounting
ou: People
l: Kent
uid: mmarple
userpassword: teapot

Processing ADD request for uid=mmarple,ou=People,o=example
ADD operation successful for DN uid=mmarple,ou=People,o=example
$




$ ./ldapsearch -p 1389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l

     106
$ ./ldapsearch -p 2389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l
     106




8. Restart server instances


$ ./stop-ds -R




9. Delete entry on one server:


$ ./ldapdelete  -p 1389 -D "cn=directory manager" -w secret12 "uid=mmarple, ou=People, o=example"
Processing DELETE request for uid=mmarple, ou=People, o=example
DELETE operation successful for DN uid=mmarple, ou=People, o=example
$




$ ./ldapsearch -p 1389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l

     105
$ ./ldapsearch -p 2389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l
     105




10. Downgrade (revert) 1st server:


$ upgrade
Would you like to upgrade this installation to a newer version or revert to an
older version?

    1)  Upgrade to a newer version
    2)  Revert to a previous version

Enter choice [1]:
2
Confirm Reversion
How would you like to specify the archive used to revert this instance?

    1)  Use the most recent versioned archive
    2)  Manually specify a reversion archive directory

Enter choice [1]:
1
Confirm Reversion
This installation will be reverted to version OpenDS Directory Server 1.0.0
(Build ID: 20080125094425Z) using the files in
/amaiur/servers/server1/OpenDS-1.0.0/history/1201535573019/files.

    1)  Continue
    2)  Cancel

Enter choice [1]:
Stopping Directory Server ..... Done.
Initializing Reversion ..... Done.
Reverting Components ..... Done.
Starting Directory Server ..... Done.
Cleaning Up ..... Done.
Recording Reversion History ..... Done.
See /amaiur/servers/server1/OpenDS-1.0.0/history/log for a history installation
history.
OpenDS Reversion Completed Successfully.  The OpenDS installation at
/amaiur/servers/server1/OpenDS-1.0.0 has now been reverted to version OpenDS
Directory Server 1.0.0 (Build ID: 20080125094425Z).
See /var/tmp/opends-upgrade-58428.log for a detailed log of this operation.
$


$ tail /var/tmp/opends-upgrade-58428.log
Jan 28, 2008 6:03:49 PM org.opends.quicksetup.util.FileManager$DeleteOperation apply
INFO: deleting  directory /amaiur/servers/server1/OpenDS-1.0.0/tmp/revert/lib
Jan 28, 2008 6:03:49 PM org.opends.quicksetup.util.FileManager$DeleteOperation apply
INFO: deleting  directory /amaiur/servers/server1/OpenDS-1.0.0/tmp/revert
Jan 28, 2008 6:03:49 PM org.opends.quicksetup.upgrader.Reverter end
INFO: Recording history
Jan 28, 2008 6:03:49 PM org.opends.quicksetup.upgrader.Reverter end
INFO: History recorded
Jan 28, 2008 6:03:49 PM org.opends.quicksetup.upgrader.Reverter end
INFO: reversion completed successfully

$ grep ERROR /var/tmp/opends-upgrade-58428.log
INFO: server: [28/Jan/2008:18:02:58 +0100] category=SYNC severity=SEVERE_ERROR msgID=14942294 msg=Replication server caught exception while listening for client connections Socket closed


$ start-ds -F
OpenDS Directory Server 1.0.0
Build ID:                 20080125094425Z
Major Version:           1
Minor Version:           0
Point Version:           0
Version Qualifier:
Revision Number:         3751
Fix IDs:
Debug Build:             false
Build OS:                SunOS 5.10 sparc
Build User:              ugaston
Build Java Version:      1.6.0
Build Java Vendor:       Sun Microsystems Inc.
Build JVM Version:       1.6.0-b105
Build JVM Vendor:        Sun Microsystems Inc.
Upgrade Event IDs:       1,2,3,4,5
$




11. Delete entry on server instance:


$ ./ldapdelete  -p 1389 -D "cn=directory manager" -w secret12 "uid=hpoirot, ou=People, o=example"
Processing DELETE request for uid=hpoirot, ou=People, o=example
DELETE operation successful for DN uid=hpoirot, ou=People, o=example
$




$ ./ldapsearch -p 1389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l

     104
$ ./ldapsearch -p 2389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l
     104




12. Downgrade 2nd server:


$ upgrade
Would you like to upgrade this installation to a newer version or revert to an
older version?

    1)  Upgrade to a newer version
    2)  Revert to a previous version

Enter choice [1]:
2
Confirm Reversion
How would you like to specify the archive used to revert this instance?

    1)  Use the most recent versioned archive
    2)  Manually specify a reversion archive directory

Enter choice [1]:
1
Confirm Reversion
This installation will be reverted to version OpenDS Directory Server 1.0.0
(Build ID: 20080125094425Z) using the files in
/amaiur/servers/server2/OpenDS-1.0.0/history/1201536864019/files.

    1)  Continue
    2)  Cancel

Enter choice [1]:
Stopping Directory Server ..... Done.
Initializing Reversion ..... Done.
Reverting Components ..... Done.
Starting Directory Server ..... Done.
Cleaning Up ..... Done.
Recording Reversion History ..... Done.
See /amaiur/servers/server2/OpenDS-1.0.0/history/log for a history installation
history.
OpenDS Reversion Completed Successfully.  The OpenDS installation at
/amaiur/servers/server2/OpenDS-1.0.0 has now been reverted to version OpenDS
Directory Server 1.0.0 (Build ID: 20080125094425Z).
See /var/tmp/opends-upgrade-51663.log for a detailed log of this operation.
$

$ tail /var/tmp/opends-upgrade-51663.log
Jan 28, 2008 6:10:27 PM org.opends.quicksetup.util.FileManager$DeleteOperation apply
INFO: deleting  directory /amaiur/servers/server2/OpenDS-1.0.0/tmp/revert/lib
Jan 28, 2008 6:10:27 PM org.opends.quicksetup.util.FileManager$DeleteOperation apply
INFO: deleting  directory /amaiur/servers/server2/OpenDS-1.0.0/tmp/revert
Jan 28, 2008 6:10:27 PM org.opends.quicksetup.upgrader.Reverter end
INFO: Recording history
Jan 28, 2008 6:10:27 PM org.opends.quicksetup.upgrader.Reverter end
INFO: History recorded
Jan 28, 2008 6:10:27 PM org.opends.quicksetup.upgrader.Reverter end
INFO: reversion completed successfully

$ grep ERROR /var/tmp/opends-upgrade-51663.log
$

$ start-ds -F
OpenDS Directory Server 1.0.0
Build ID:                 20080125094425Z
Major Version:           1
Minor Version:           0
Point Version:           0
Version Qualifier:
Revision Number:         3751
Fix IDs:
Debug Build:             false
Build OS:                SunOS 5.10 sparc
Build User:              ugaston
Build Java Version:      1.6.0
Build Java Vendor:       Sun Microsystems Inc.
Build JVM Version:       1.6.0-b105
Build JVM Vendor:        Sun Microsystems Inc.
Upgrade Event IDs:       1,2,3,4,5




13. Delete entry on server instance:


$ ./ldapdelete  -p 2389 -D "cn=directory manager" -w secret12 "uid=acdoyle, ou=People, o=example”
Processing DELETE request for uid=acdoyle, ou=People, o=example
DELETE operation successful for DN uid=acdoyle, ou=People, o=example
$




$ ./ldapsearch -p 1389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l

     103
$ ./ldapsearch -p 2389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l
     103




14. Restart servers


$ ./stop-ds -R




15. Delete entry on server instance:


$./ldapdelete  -p 1389 -D "cn=directory manager" -w secret12 "uid=ilestrade, ou=People, o=example”
Processing DELETE request for uid=ilestrade, ou=People, o=example
DELETE operation successful for DN uid=ilestrade, ou=People, o=example
$




$ ./ldapsearch -p 1389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l

     102
$ ./ldapsearch -p 2389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l
     102




$ ./ldapdelete  -p 2389 -D "cn=directory manager" -w secret12 "uid=dwatson, ou=People, o=example”

Processing DELETE request for uid=dwatson, ou=People, o=example
DELETE operation successful for DN uid=dwatson, ou=People, o=example
$




$ ./ldapsearch -p 1389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l

     101
$ ./ldapsearch -p 2389 -D "cn=directory manager" -w secret12 -b "o=example" "objectclass=*" dn | grep 'dn: ' | wc -l
     101