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

ugaston
19.59.2007 803715dde2f0abbf2da38909a15443429dc547b4
Replication testsuite maintenance changes
4 files modified
394 ■■■■ changed files
opendj-sdk/opends/tests/functional-tests/testcases/replication/replication_setup.xml 37 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/tests/functional-tests/testcases/replication/schema/schema.xml 79 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml 77 ●●●● patch | view | raw | blame | history
opendj-sdk/opends/tests/shared/functions/topology.xml 201 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/tests/functional-tests/testcases/replication/replication_setup.xml
@@ -91,40 +91,6 @@
            [_topologyServerList]
          </call>            
          <!-- Special setup for testcase:   Replication: Total Update: Schema total update
            Modify schema in one server before replication is enabled.  -->
          <if expr="CurrentTestPath['suite'] == 'main.replication.total-update'">
            <sequence>
              <script>
                newObjectclass = '( testobjectclass1-oid NAME \'testobjectclass-1\' SUP person MAY ( street $ testattribute-1 $ c ) X-ORIGIN \'user defined\' )'
                newAttributetype = '( testattribute1-oid NAME \'testattribute-1\' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN \'user defined\' )'
              </script>
              <!-- Modify schema  in "master" server -->
              <call function="'modifyAnAttribute'">
                { 'dsPath' : masterPath,
                  'dsInstanceHost'   : masterHost ,
                  'dsInstancePort'    : master.getPort(),
                  'dsInstanceDn'  : master.getRootDn(),
                  'dsInstancePswd'    : master.getRootPwd(),
                  'DNToModify'    : 'cn=schema',
                  'attributeName' : 'attributeTypes',
                  'newAttributeValue' : newAttributetype,
                  'changetype' : 'add' }
              </call>
              <call function="'modifyAnAttribute'">
                { 'dsPath' : masterPath,
                  'dsInstanceHost'   : masterHost ,
                  'dsInstancePort'    : master.getPort(),
                  'dsInstanceDn'  : master.getRootDn(),
                  'dsInstancePswd'    : master.getRootPwd(),
                  'DNToModify'    : 'cn=schema',
                  'attributeName' : 'objectClasses',
                  'newAttributeValue' : newObjectclass,
                  'changetype' : 'add' }
              </call>
            </sequence>
          </if>
              
          <iterate var="server" in="consumerList">
            <sequence>
@@ -162,7 +128,8 @@
                      'refInstanceDn'  :  master.getRootDn(),
                      'refInstancePswd'  :  master.getRootPwd(),
                      'refReplicationPort'  :  masterReplicationServer.getPort(),
                      'replicationDnList'  :  replicatedDnList }
                      'replicationDnList'  :  replicatedDnList,
                      'useSecondServerAsSchemaSource'  :  True }
                  </call>
                </sequence>
              </if>                
opendj-sdk/opends/tests/functional-tests/testcases/replication/schema/schema.xml
@@ -64,7 +64,10 @@
            synchroSuffix = master.getSynchronizedSuffixList()[0].getSuffixDn()    
            
            currentSchemaFile = '%s/config/schema/99-user.ldif' % masterPath
            provSchemaFile = '%s/../last-99-user.ldif' % masterPath
            provSchemaFile = '%s/../last-99-user.ldif' % masterPath
            consumer = consumerList[0]
            consumerHost = consumer.getHostname()
          </script>            
              
                                    
@@ -113,14 +116,14 @@
                  'changetype' : 'add' }
              </call>
              <!-- Add entry to "master" server -->
              <!-- Add entry to "consumer" server -->
              <call function="'addEntry'">
                { 'location'       : clientHost,
                  'dsPath'         : clientPath,
                  'dsInstanceHost' : masterHost,
                  'dsInstancePort' : master.getPort(),
                  'dsInstanceDn'   : master.getRootDn(),
                  'dsInstancePswd' : master.getRootPwd(),
                  'dsInstanceHost' : consumerHost,
                  'dsInstancePort' : consumer.getPort(),
                  'dsInstanceDn'   : consumer.getRootDn(),
                  'dsInstancePswd' : consumer.getRootPwd(),
                  'entryToBeAdded' : '%s/replication/testuser-0.ldif' % clientDataDir }
              </call>           
                       
@@ -133,6 +136,10 @@
              <call function="'verifyTrees'">
                [ clientHost, clientPath, master, consumerList, synchroSuffix ]
              </call> 
              <script>
                knownIssue(2599)
              </script>
                                
              <call function="'testCase_Postamble'"/>
            </sequence>
@@ -187,14 +194,14 @@
                  'changetype' : 'add' }
              </call>
              <!-- Add entry to "master" server -->
              <!-- Add entry to "consumer" server -->
              <call function="'addEntry'">
                { 'location'       : clientHost,
                  'dsPath'         : clientPath,
                  'dsInstanceHost' : masterHost,
                  'dsInstancePort' : master.getPort(),
                  'dsInstanceDn'   : master.getRootDn(),
                  'dsInstancePswd' : master.getRootPwd(),
                  'dsInstanceHost' : consumerHost,
                  'dsInstancePort' : consumer.getPort(),
                  'dsInstanceDn'   : consumer.getRootDn(),
                  'dsInstancePswd' : consumer.getRootPwd(),
                  'entryToBeAdded' : '%s/replication/testuser-1.ldif' % clientDataDir }
              </call>           
                       
@@ -207,7 +214,11 @@
              <call function="'verifyTrees'">
                [ clientHost, clientPath, master, consumerList, synchroSuffix ]
              </call> 
              <script>
                knownIssue(2599)
              </script>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>                                           
@@ -283,7 +294,11 @@
              <call function="'verifyTrees'">
                [ clientHost, clientPath, master, consumerList, synchroSuffix ]
              </call> 
              <script>
                knownIssue(2599)
              </script>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>                                                                     
@@ -359,7 +374,11 @@
              <call function="'verifyTrees'">
                [ clientHost, clientPath, master, consumerList, synchroSuffix ]
              </call> 
              <script>
                knownIssue(2599)
              </script>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>                                                                     
@@ -412,14 +431,14 @@
                  'sleepForMilliSeconds'  :  1000 }
              </call>
                
              <!-- Add entry to "master" server -->
              <!-- Add entry to "consumer" server -->
              <call function="'addEntry'">
                { 'location'       : clientHost,
                  'dsPath'         : clientPath,
                  'dsInstanceHost' : masterHost,
                  'dsInstancePort' : master.getPort(),
                  'dsInstanceDn'   : master.getRootDn(),
                  'dsInstancePswd' : master.getRootPwd(),
                  'dsInstanceHost' : consumerHost,
                  'dsInstancePort' : consumer.getPort(),
                  'dsInstanceDn'   : consumer.getRootDn(),
                  'dsInstancePswd' : consumer.getRootPwd(),
                  'entryToBeAdded' : '%s/replication/newtestuser-0.ldif' % clientDataDir }
              </call>           
                       
@@ -432,7 +451,11 @@
              <call function="'verifyTrees'">
                [ clientHost, clientPath, master, consumerList, synchroSuffix ]
              </call> 
              <script>
                knownIssue(2599)
              </script>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>                     
@@ -486,14 +509,14 @@
                  'sleepForMilliSeconds'  :  1000 }
              </call>
                                
              <!-- Add entry to "master" server -->
              <!-- Add entry to "consumer" server -->
              <call function="'addEntry'">
                { 'location'       : clientHost,
                  'dsPath'         : clientPath,
                  'dsInstanceHost' : masterHost,
                  'dsInstancePort' : master.getPort(),
                  'dsInstanceDn'   : master.getRootDn(),
                  'dsInstancePswd' : master.getRootPwd(),
                  'dsInstanceHost' : consumerHost,
                  'dsInstancePort' : consumer.getPort(),
                  'dsInstanceDn'   : consumer.getRootDn(),
                  'dsInstancePswd' : consumer.getRootPwd(),
                  'entryToBeAdded' : '%s/replication/newtestuser-1.ldif' % clientDataDir }
              </call>           
                       
@@ -506,7 +529,11 @@
              <call function="'verifyTrees'">
                [ clientHost, clientPath, master, consumerList, synchroSuffix ]
              </call> 
              <script>
                knownIssue(2599)
              </script>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>                                           
opendj-sdk/opends/tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml
@@ -188,7 +188,7 @@
              <script>
                consumer = consumerList[0]
              </script>                
              <!-- Try to add entry belonging to new schema (see replication setup)
                to "consumer" server; should be rejected with error 65 (objectclass violation) -->                       
              <call function="'addEntry'">
@@ -202,21 +202,60 @@
                  'expectedRC'  :  65 }
              </call>                     
              <!-- Perform the total update on every server -->
              <iterate var="server" in="consumerList">
                <sequence>
                  <call function="'initializeReplication'">
                    { 'location'  :  clientHost,
                      'dsPath'  :  clientPath,
                      'dsInstanceHost'  :  server.getHostname(),
                      'dsInstancePort'  :  server.getPort(),
                      'sourceInstanceHost'  :  masterHost,
                      'sourceInstancePort'  :  master.getPort(),
                      'replicationDnList'  :  ['cn=schema']
                    }
                  </call>
                </sequence>
              </iterate>
              <!-- Disable schema replication on "master" server -->
              <call function="'disableReplication'">
                { 'location'  :  clientHost,
                  'dsPath'  :  clientPath,
                  'dsInstanceHost'  :  masterHost,
                  'dsInstancePort'  :  master.getPort(),
                  'replicationDnList'  :  ['cn=schema'] }
              </call>
              <script>
                newObjectclass = '( testobjectclass1-oid NAME \'testobjectclass-1\' SUP person MAY ( street $ testattribute-1 $ c ) X-ORIGIN \'user defined\' )'
                newAttributetype = '( testattribute1-oid NAME \'testattribute-1\' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN \'user defined\' )'
              </script>
              <!-- Modify schema  in "master" server -->
              <call function="'modifyAnAttribute'">
                { 'dsPath' : masterPath,
                  'dsInstanceHost'   : masterHost ,
                  'dsInstancePort'    : master.getPort(),
                  'dsInstanceDn'  : master.getRootDn(),
                  'dsInstancePswd'    : master.getRootPwd(),
                  'DNToModify'    : 'cn=schema',
                  'attributeName' : 'attributeTypes',
                  'newAttributeValue' : newAttributetype,
                  'changetype' : 'add' }
              </call>
              <call function="'modifyAnAttribute'">
                { 'dsPath' : masterPath,
                  'dsInstanceHost'   : masterHost ,
                  'dsInstancePort'    : master.getPort(),
                  'dsInstanceDn'  : master.getRootDn(),
                  'dsInstancePswd'    : master.getRootPwd(),
                  'DNToModify'    : 'cn=schema',
                  'attributeName' : 'objectClasses',
                  'newAttributeValue' : newObjectclass,
                  'changetype' : 'add' }
              </call>
              <!-- Re-enable schema replication on "master" server, and
                   at the same time initialise the schema across the topology -->
              <call function="'enableReplication'">
                { 'location'  :  clientHost,
                  'dsPath'  :  clientPath,
                  'dsInstanceHost'  :  masterHost,
                  'dsInstancePort'  :  master.getPort(),
                  'dsInstanceDn'  :  master.getRootDn(),
                  'dsInstancePswd'  :  master.getRootPwd(),
                  'refInstanceHost'  :  consumer.getHostname(),
                  'refInstancePort'  :  consumer.getPort(),
                  'refInstanceDn'  :  consumer.getRootDn(),
                  'refInstancePswd'  :  consumer.getRootPwd(),
                  'replicationDnList'  :  ['cn=schema'] }
              </call>
                
              <!-- Add entry to "consumer" server -->                       
              <call function="'addEntry'">
@@ -240,7 +279,7 @@
              </call>                 
              <script>
                knownIssue(2263)
                knownIssue(2587)
              </script>                 
                                                                           
              <call function="'testCase_Postamble'"/>
@@ -359,11 +398,11 @@
              <call function="'verifyTrees'">
                [ clientHost, clientPath, master, consumerList, 'o=example' ]
              </call>                 
<!--
              <script>
                knownIssue(2425)
              </script> 
-->
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
opendj-sdk/opends/tests/shared/functions/topology.xml
@@ -758,12 +758,23 @@
        <function-arg-property name="type" value="string" />
      </function-arg-def>
      
      <function-arg-def name="dsReplicationPort" type="required">
      <function-arg-def name="dsReplicationPort"
                        type="optional"
                        default="None">
        <function-arg-description>
          Replication port number
        </function-arg-description>
        <function-arg-property name="type" value="Port number" />
      </function-arg-def>
      <function-arg-def name="dsSecureReplication"
                        type="optional"
                        default="None">
        <function-arg-description>
          Encrypt communications over dsReplicationPort (secure replication)
        </function-arg-description>
        <function-arg-property name="type" value="boolean" />
      </function-arg-def>
        
      <function-arg-def name="refInstanceHost"
                        type="optional"
@@ -795,12 +806,23 @@
        <function-arg-property name="type" value="string" />
      </function-arg-def>
      
      <function-arg-def name="refReplicationPort" type="required">
      <function-arg-def name="refReplicationPort"
                        type="optional"
                        default="None">
        <function-arg-description>
          Reference server Replication port number
        </function-arg-description>
        <function-arg-property name="type" value="Port number" />
      </function-arg-def>
      <function-arg-def name="refSecureReplication"
                        type="optional"
                        default="None">
        <function-arg-description>
          Encrypt communications over refReplicationPort (secure replication)
        </function-arg-description>
        <function-arg-property name="type" value="boolean" />
      </function-arg-def>
                        
      <function-arg-def name="replicationDnList" type="required">
        <function-arg-description>
@@ -826,7 +848,25 @@
        </function-arg-description>
        <function-arg-property name="type" value="string" />
      </function-arg-def>        
      <function-arg-def name="noSchemaReplication"
                        type="optional"
                        default="None">
        <function-arg-description>
          Do not enable schema replication
        </function-arg-description>
        <function-arg-property name="type" value="boolean" />
      </function-arg-def>
      <function-arg-def name="useSecondServerAsSchemaSource"
                        type="optional"
                        default="None">
        <function-arg-description>
          Take the refInstanceHost as the source for the schema initialisation
        </function-arg-description>
        <function-arg-property name="type" value="boolean" />
      </function-arg-def>
      <function-arg-def name="expectedRC" type="optional" default="0">
        <function-arg-description>
        Expected return code value. Default value is 0
@@ -851,22 +891,25 @@
        STAFCmdParamsList.append('-Q')
          
        if dsInstanceHost:
          STAFCmdParamsList.append('-h %s' % dsInstanceHost)
          STAFCmdParamsList.append('--host1 %s' % dsInstanceHost)
      
        if dsInstancePort:
          STAFCmdParamsList.append('-p %s' % dsInstancePort)
          STAFCmdParamsList.append('--port1 %s' % dsInstancePort)
      
        if dsInstanceDn:
          STAFCmdParamsList.append('-D "%s"' % dsInstanceDn)
          STAFCmdParamsList.append('--bindDN1 "%s"' % dsInstanceDn)
      
        if dsInstancePswd:
          STAFCmdParamsList.append('--bindPassword1 "%s"' % dsInstancePswd)
        if dsReplicationPort:
          STAFCmdParamsList.append('-r %s' % dsReplicationPort)
          STAFCmdParamsList.append('--replicationPort1 %s' % dsReplicationPort)
        if dsSecureReplication:
          STAFCmdParamsList.append('--secureReplication1')
        if refInstanceHost:
          STAFCmdParamsList.append('-O %s' % refInstanceHost)
          STAFCmdParamsList.append('--host2 %s' % refInstanceHost)
      
        if refInstancePort:
          STAFCmdParamsList.append('--port2 %s' % refInstancePort)
@@ -878,7 +921,10 @@
          STAFCmdParamsList.append('--bindPassword2 "%s"' % refInstancePswd)
        if refReplicationPort:
          STAFCmdParamsList.append('-R %s' % refReplicationPort)
          STAFCmdParamsList.append('--replicationPort2 %s' % refReplicationPort)
        if refSecureReplication:
          STAFCmdParamsList.append('--secureReplication2')
        if replicationDnList:
          for dn in replicationDnList:
@@ -889,6 +935,12 @@
      
        if adminPswd:
          STAFCmdParamsList.append('-w "%s"' % adminPswd)          
        if noSchemaReplication:
          STAFCmdParamsList.append('--noSchemaReplication')
        if useSecondServerAsSchemaSource:
          STAFCmdParamsList.append('--useSecondServerAsSchemaSource')
                    
        STAFCmdParams=' '.join(STAFCmdParamsList)
      </script>
@@ -1076,6 +1128,137 @@
  </function>
  <!-- Disable replication for given baseDN  on server using dsreplication -->
  <function name="disableReplication">
    <function-prolog>
      This function disables replication for a given baseDN on a server using dsreplication.
    </function-prolog>
    <function-map-args>
      <function-arg-def name="location"
                        type="optional"
                        default="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="filepath" />
      </function-arg-def>
      <function-arg-def name="dsInstanceHost"
                        type="optional"
                        default="STAF_REMOTE_HOSTNAME">
        <function-arg-description>
          Directory server hostname or IP address
        </function-arg-description>
        <function-arg-property name="type" value="hostname" />
      </function-arg-def>
      <function-arg-def name="dsInstancePort" type="required">
        <function-arg-description>
          Directory server port number
        </function-arg-description>
        <function-arg-property name="type" value="Port number" />
      </function-arg-def>
      <function-arg-def name="replicationDnList" type="required">
        <function-arg-description>
          DN of the replicated suffix
        </function-arg-description>
        <function-arg-property name="type" value="DN list" />
      </function-arg-def>
      <function-arg-def name="adminUID"
                                   type="optional"
                                   default="AdminUID">
        <function-arg-description>
          Global Administrator UID
        </function-arg-description>
        <function-arg-property name="type" value="UID" />
      </function-arg-def>
      <function-arg-def name="adminPswd"
                                   type="optional"
                                   default="AdminPswd">
        <function-arg-description>
          Global Administrator password
        </function-arg-description>
        <function-arg-property name="type" value="string" />
      </function-arg-def>
      <function-arg-def name="expectedRC" type="optional" default="0">
        <function-arg-description>
        Expected return code value. Default value is 0
        </function-arg-description>
        <function-arg-property name="type" value="string" />
      </function-arg-def>
    </function-map-args>
    <sequence>
      <!-- Local variables -->
      <script>
        mylocation=location
        STAFCmdParams=''
        STAFCmd=''
        if dsPath:
          dsBinPath='%s/%s' % (dsPath,fileFolder)
          STAFCmd='%s/%s%s' % (dsBinPath,DSREPLICATION,fileExt)
        STAFCmdParamsList=[]
        STAFCmdParamsList.append('disable')
        STAFCmdParamsList.append('-n')
        STAFCmdParamsList.append('-Q')
        if dsInstanceHost:
          STAFCmdParamsList.append('-h %s' % dsInstanceHost)
        if dsInstancePort:
          STAFCmdParamsList.append('-p %s' % dsInstancePort)
        if replicationDnList:
          for dn in replicationDnList:
            STAFCmdParamsList.append('-b "%s"' % dn)
        if adminUID:
          STAFCmdParamsList.append('-I "%s"' % adminUID)
        if adminPswd:
          STAFCmdParamsList.append('-w "%s"' % adminPswd)
        STAFCmdParams=' '.join(STAFCmdParamsList)
      </script>
      <call function="'runCommand'">
        { 'name'      : 'Disable Replication',
          'location'  : location,
          'command'   : STAFCmd,
          'arguments' : STAFCmdParams
        }
      </call>
      <script>
        STAXCode=RC
        STAXReason=STAXResult
      </script>
      <call function="'checktestRC'">
        { 'returncode' : STAXCode,
          'result'     : STAXReason,
          'expected'   : expectedRC
        }
      </call>
      <return>
        STAXReason
      </return>
    </sequence>
  </function>
                                          
  
  <function name="readTopology">