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

ugaston
17.04.2007 c1dc1a5f70f7616013e61477be9b38e363e93097
Update totalupdate testsuite with dsreplication call
2 files modified
284 ■■■■ changed files
opends/tests/functional-tests/shared/functions/topology.xml 156 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml 128 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/functions/topology.xml
@@ -916,7 +916,161 @@
  </function>
  <!-- Initialize replicated suffix with the contents of a source server using dsreplication -->
  <function name="initializeReplication">
    <function-prolog>
      This function initializes replicated suffixes with the contents
      of a source 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="sourceInstanceHost"
                        type="optional"
                        default="STAF_REMOTE_HOSTNAME">
        <function-arg-description>
          Source Directory server hostname or IP address
        </function-arg-description>
        <function-arg-property name="type" value="hostname" />
      </function-arg-def>
      <function-arg-def name="sourceInstancePort" type="required">
        <function-arg-description>
          Source 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('initialize')
        STAFCmdParamsList.append('-n')
        STAFCmdParamsList.append('-Q')
        if dsInstanceHost:
          STAFCmdParamsList.append('-O %s' % dsInstanceHost)
        if dsInstancePort:
          STAFCmdParamsList.append('--portDestination %s' % dsInstancePort)
        if sourceInstanceHost:
          STAFCmdParamsList.append('-h %s' % sourceInstanceHost)
        if sourceInstancePort:
          STAFCmdParamsList.append('-p %s' % sourceInstancePort)
        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'      : 'Initialize 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">
    <function-prolog>
opends/tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml
@@ -53,36 +53,36 @@
            
              <call function="'testCase_Preamble'"/>
              
              <!-- Stop the Directory Server -->
              <!-- Stop "master" 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()
                { 'location'  : masterHost,
                  'dsPath'    : masterPath,
                  'dsHost'    : masterHost,
                  'dsPort'    : master.getPort(),
                  'dsBindDN'  : master.getRootDn(),
                  'dsBindPwd' : master.getRootPwd()
                }
              </call>
              
              <!-- Check that the Directory Server is stopped -->
              
              <!-- Import data into Directory Server -->
              <!-- Import data into "master" Directory Server -->
              <call function="'ImportLdifWithScript'">
                { 'location'     : server1.getHostname() ,
                  'dsPath'       : '%s/%s' % (server1.getDir(),OPENDSNAME),
                { 'location'     : masterHost,
                  'dsPath'       : masterPath,
                  'dsBackEnd'    : 'userRoot',          
                  'dsLdifFile'   : '%s/replication/Example.ldif' % server1DataDir
                  'dsLdifFile'   : '%s/replication/Example.ldif' % masterDataDir
                }
              </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(),
                { 'location'        : masterHost,
                  'dsPath'          : masterPath,
                  'dsHost'          : masterHost,
                  'dsPort'          : master.getPort(),
                  'dsDn'            : master.getRootDn(),
                  'dsPswd'          : master.getRootPwd(),
                  'expectedEntries' : ['uid=scarter,ou=People,o=example',
                                       'uid=dmiller, ou=People, o=example',
                                       'uid=rhunt, ou=People, o=example']
@@ -91,65 +91,61 @@
              
              <!-- Start the Directory Server -->
              <call function="'StartDsWithScript'">
                { 'location'  : server1.getHostname(),
                  'dsPath'    : '%s/%s' % (server1.getDir(),OPENDSNAME)
                { 'location'  : masterHost,
                  'dsPath'    : masterPath
                }
              </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() ,
                { 'location'         : masterHost,
                  'dsPath'           : masterPath,
                  'dsInstanceHost'   : masterHost,
                  'dsInstancePort'   : master.getPort() ,
                  'dsInstanceDn'     : master.getRootDn() ,
                  'dsInstancePswd'   : master.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'" />
              <iterate var="server" in="consumerList">
                <sequence>
                  <!-- Perform the total update -->
                  <call function="'initializeReplication'">
                    { 'location'  :  clientHost,
                      'dsPath'  :  clientPath,
                      'dsInstanceHost'  :  server.getHostname(),
                      'dsInstancePort'  :  server.getPort(),
                      'sourceInstanceHost'  :  masterHost,
                      'sourceInstancePort'  :  master.getPort(),
                      'replicationDnList'  :  ['o=example']
                    }
                  </call>
                  <!-- Verify the total update -->
                  <call function="'checkImport'">
                    { 'location'  : server.getHostname(),
                      'dsPath'    : '%s/%s' % (server.getDir(),OPENDSNAME),
                      'dsHost'    : server.getHostname(),
                      'dsPort'    : server.getPort(),
                      'dsDn'      : server.getRootDn(),
                      'dsPswd'    : server.getRootPwd(),
                      'expectedEntries' : ['uid=scarter,ou=People,o=example',
                                           'uid=dmiller, ou=People, o=example',
                                           'uid=rhunt, ou=People, o=example'],
                      'startDS'  : 'no'
                    }
                  </call>
                </sequence>
              </if>
              <!-- Verify the total update -->
              <call function="'checkImport'">
                { 'location'  : server2.getHostname(),
                  'dsPath'    : '%s/%s' % (server2.getDir(),OPENDSNAME),
                  'dsHost'    : server2.getHostname(),
                  'dsPort'    : server2.getPort(),
                  'dsDn'      : server2.getRootDn(),
                  'dsPswd'    : server2.getRootPwd(),
                  'expectedEntries' : ['uid=scarter,ou=People,o=example',
                                       'uid=dmiller, ou=People, o=example',
                                       'uid=rhunt, ou=People, o=example'],
                  'startDS'  : 'no'
                }
              </call>
              </iterate>
              <!-- Verify the synchronization of the trees among the servers in the topology -->
              <call function="'verifyTrees'">
                [ clientHost, clientPath, master, consumerList, 'o=example' ]
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>