| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| | | <!DOCTYPE stax SYSTEM "../../../../shared/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_encryption"/> |
| | | |
| | | <function name="replication_encryption"> |
| | | |
| | | <sequence> |
| | | |
| | | <block name="'encryption'"> |
| | | |
| | | <sequence> |
| | | |
| | | <script> |
| | | if not CurrentTestPath.has_key('group'): |
| | | CurrentTestPath['group']='replication' |
| | | CurrentTestPath['suite']=STAXCurrentBlock |
| | | </script> |
| | | |
| | | <call function="'testSuite_Preamble'"/> |
| | | |
| | | <!--- Test Suite information |
| | | #@TestSuiteName Replication Encryption Tests |
| | | #@TestSuitePurpose Verify that replication can use an encrypted |
| | | channel. |
| | | #@TestSuiteID Encryption Tests |
| | | #@TestSuiteGroup Encryption |
| | | #@TestGroup Replication |
| | | #@TestScript replication_encryption.xml |
| | | #@TestHTMLLink http://opends.dev.java.net/ |
| | | --> |
| | | |
| | | |
| | | <import machine="STAF_LOCAL_HOSTNAME" |
| | | file="'%s/testcases/replication/replication_setup.xml' |
| | | % (TESTS_DIR)"/> |
| | | <call function="'replication_setup'"> |
| | | { 'topologyFile' : '%s/config/replication/3server_topology.txt' \ |
| | | % TESTS_DIR, |
| | | 'secureReplication' : True } |
| | | </call> |
| | | |
| | | <script> |
| | | consumer = consumerList[0] |
| | | synchroSuffix = master.getSynchronizedSuffixList()[0].getSuffixDn() |
| | | </script> |
| | | |
| | | |
| | | <!-- Load entries into "master" server --> |
| | | <!-- Stop "master" Directory Server --> |
| | | <call function="'StopDsWithScript'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'dsHost' : masterHost, |
| | | 'dsPort' : master.getPort(), |
| | | 'dsBindDN' : master.getRootDn(), |
| | | 'dsBindPwd' : master.getRootPwd() |
| | | } |
| | | </call> |
| | | |
| | | <!-- Import data into "master" Directory Server --> |
| | | <call function="'ImportLdifWithScript'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'dsBackEnd' : 'userRoot', |
| | | 'dsLdifFile' : '%s/replication/Example.ldif' % masterDataDir |
| | | } |
| | | </call> |
| | | |
| | | <!-- Start the Directory Server --> |
| | | <call function="'StartDsWithScript'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath |
| | | } |
| | | </call> |
| | | |
| | | <!-- Wait for DS to start --> |
| | | <call function="'isAlive'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'dsInstanceHost' : masterHost, |
| | | 'dsInstancePort' : master.getPort() , |
| | | 'dsInstanceDn' : master.getRootDn() , |
| | | 'dsInstancePswd' : master.getRootPwd() , |
| | | 'noOfLoops' : 10 , |
| | | 'noOfMilliSeconds' : 2000 |
| | | } |
| | | </call> |
| | | |
| | | <!-- Initialise the servers in the topology --> |
| | | <!-- |
| | | <call function="'initializeReplication'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'sourceInstanceHost' : masterHost, |
| | | 'sourceInstancePort' : master.getPort(), |
| | | 'replicationDnList' : [synchroSuffix] |
| | | } |
| | | </call> |
| | | --> |
| | | <iterate var="server" in="consumerList"> |
| | | <call function="'initializeReplication'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'sourceInstanceHost' : masterHost, |
| | | 'sourceInstancePort' : master.getPort(), |
| | | 'replicationDnList' : [synchroSuffix] |
| | | } |
| | | </call> |
| | | </iterate> |
| | | |
| | | |
| | | <!--- Test Case information |
| | | #@TestMarker Replication Encryption Tests |
| | | #@TestName Replication: Encryption: Add entry |
| | | #@TestID Add entry |
| | | #@TestPurpose Check entry add over secured replication |
| | | #@TestPreamble |
| | | #@TestSteps |
| | | #@TestPostamble |
| | | #@TestResult |
| | | --> |
| | | <testcase name="getTestCaseName('Add entry')"> |
| | | <sequence> |
| | | <call function="'testCase_Preamble'"/> |
| | | <message> |
| | | 'Replication: Encryption: Add entry. Check entry add over \ |
| | | secured replication' |
| | | </message> |
| | | |
| | | <iterate var="server" in="_topologyServerList" indexvar="i"> |
| | | <sequence> |
| | | |
| | | <script> |
| | | serverPath = '%s/%s' % (server.getDir(), OPENDSNAME) |
| | | userDn = 'uid=iabizen-%s, ou=People, %s' % (i, synchroSuffix) |
| | | </script> |
| | | |
| | | <!-- Add entry to one of the other servers --> |
| | | <script> |
| | | listAttr = [] |
| | | listAttr.append('objectclass:top') |
| | | listAttr.append('objectclass:organizationalperson') |
| | | listAttr.append('objectclass:inetorgperson') |
| | | listAttr.append('objectclass:person') |
| | | listAttr.append('givenname:Izen-%s' % i) |
| | | listAttr.append('sn:Abizen-%s' % i) |
| | | listAttr.append('cn:Izen-%s Abizen-%s' % (i, i)) |
| | | listAttr.append('l: ICNC') |
| | | </script> |
| | | |
| | | <call function="'addAnEntry'"> |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | 'DNToAdd' : userDn, |
| | | 'listAttributes' : listAttr, |
| | | 'expectedRC' : 0 |
| | | } |
| | | </call> |
| | | |
| | | </sequence> |
| | | </iterate> |
| | | |
| | | <!-- Verify the synchronization of the trees among the servers in |
| | | the topology --> |
| | | <call function="'verifyTrees'"> |
| | | [ clientHost, clientPath, master, consumerList, synchroSuffix ] |
| | | </call> |
| | | |
| | | <call function="'testCase_Postamble'"/> |
| | | </sequence> |
| | | </testcase> |
| | | |
| | | |
| | | |
| | | <!--- Test Case information |
| | | #@TestMarker Replication Encryption Tests |
| | | #@TestName Replication: Encryption: Modify entry |
| | | #@TestID Modify entry |
| | | #@TestPurpose Check entry modify over secured replication |
| | | #@TestPreamble |
| | | #@TestSteps |
| | | #@TestPostamble |
| | | #@TestResult |
| | | --> |
| | | <testcase name="getTestCaseName('Modify entry')"> |
| | | <sequence> |
| | | <call function="'testCase_Preamble'"/> |
| | | <message> |
| | | 'Replication: Encryption: Modify entry. Check entry modify over \ |
| | | secured replication' |
| | | </message> |
| | | |
| | | <script> |
| | | serverPath = '%s/%s' % (server.getDir(), OPENDSNAME) |
| | | userDn = 'uid=iabizen-1, ou=People, %s' % synchroSuffix |
| | | </script> |
| | | |
| | | <!-- Modify entry in "master" server --> |
| | | <call function="'modifyAnAttribute'"> |
| | | { 'dsPath' : masterPath, |
| | | 'dsInstanceHost' : masterHost , |
| | | 'dsInstancePort' : master.getPort(), |
| | | 'dsInstanceDn' : master.getRootDn(), |
| | | 'dsInstancePswd' : master.getRootPwd(), |
| | | 'DNToModify' : userDn, |
| | | 'attributeName' : 'l', |
| | | 'newAttributeValue' : 'GEC', |
| | | 'changetype' : 'replace' } |
| | | </call> |
| | | |
| | | <!-- Verify the synchronization of the trees among the servers in |
| | | the topology --> |
| | | <call function="'verifyTrees'"> |
| | | [ clientHost, clientPath, master, consumerList, synchroSuffix ] |
| | | </call> |
| | | |
| | | <call function="'testCase_Postamble'"/> |
| | | </sequence> |
| | | </testcase> |
| | | |
| | | |
| | | |
| | | <!--- Test Case information |
| | | #@TestMarker Replication Encryption Tests |
| | | #@TestName Replication: Encryption: Delete entry |
| | | #@TestID Delete entry |
| | | #@TestPurpose Check entry delete over secured replication |
| | | #@TestPreamble |
| | | #@TestSteps |
| | | #@TestPostamble |
| | | #@TestResult |
| | | --> |
| | | <testcase name="getTestCaseName('Delete entry')"> |
| | | <sequence> |
| | | <call function="'testCase_Preamble'"/> |
| | | <message> |
| | | 'Replication: Encryption: Delete entry. Check delete modify over \ |
| | | secured replication' |
| | | </message> |
| | | |
| | | <script> |
| | | serverPath = '%s/%s' % (server.getDir(), OPENDSNAME) |
| | | userDn = 'uid=iabizen-2, ou=People, %s' % synchroSuffix |
| | | </script> |
| | | |
| | | <!-- Delete entry in "master" server --> |
| | | <call function="'DeleteEntry'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : masterHost , |
| | | 'dsInstancePort' : master.getPort() , |
| | | 'dsInstanceDn' : master.getRootDn() , |
| | | 'dsInstancePswd' : master.getRootPwd() , |
| | | 'dsBaseDN' : userDn } |
| | | </call> |
| | | |
| | | <!-- Verify the synchronization of the trees among the servers in |
| | | the topology --> |
| | | <call function="'verifyTrees'"> |
| | | [ clientHost, clientPath, master, consumerList, synchroSuffix ] |
| | | </call> |
| | | |
| | | <call function="'testCase_Postamble'"/> |
| | | </sequence> |
| | | </testcase> |
| | | |
| | | |
| | | |
| | | |
| | | <!--- Test Case information |
| | | #@TestMarker Replication Encryption Tests |
| | | #@TestName Replication: Encryption: Modify Entry - add |
| | | binary attribute |
| | | #@TestID Modify Entry - add binary attribute |
| | | #@TestPurpose Check that an entry modify is well propagated |
| | | by secured replication. |
| | | #@TestPreamble |
| | | #@TestSteps |
| | | #@TestPostamble |
| | | #@TestResult |
| | | --> |
| | | <testcase name="getTestCaseName |
| | | ('Modify Entry - add binary attribute')"> |
| | | <sequence> |
| | | <call function="'testCase_Preamble'"/> |
| | | <message> |
| | | 'Replication: Encryption: Modify Entry - add binary attribute. \ |
| | | Check that an entry modify is well propagated by secured \ |
| | | replication.' |
| | | </message> |
| | | |
| | | <script> |
| | | filename = 'replication_mod_add_binary.ldif' |
| | | filePath = '%s/%s' % (logsTestDataDir,filename) |
| | | binaryFilePath = '%s/photo1.uu' % testsGroupDir |
| | | dn = 'uid=hmiller, ou=People,%s' % synchroSuffix |
| | | modif = 'add' |
| | | attrType = 'jpegPhoto' |
| | | write_replication_mod_binary_ldif_file(filePath, dn, modif, |
| | | attrType, binaryFilePath) |
| | | </script> |
| | | |
| | | <!-- Copy the replication_mod ldif to client host --> |
| | | <message> |
| | | 'Copy %s file from %s to %s' % (filename,logsTestDataDir, |
| | | clientDataDir) |
| | | </message> |
| | | <call function="'copyFile'"> |
| | | { 'srcfile' : filePath, |
| | | 'destfile' : '%s/%s' % (clientDataDir,filename), |
| | | 'remotehost' : client.getHostname() } |
| | | </call> |
| | | |
| | | <!-- Modify "master" server --> |
| | | <call function="'ldapModifyWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : masterHost , |
| | | 'dsInstancePort' : master.getPort() , |
| | | 'dsInstanceDn' : master.getRootDn() , |
| | | 'dsInstancePswd' : master.getRootPwd() , |
| | | 'dsFilename' : '%s/%s' % (clientDataDir, filename) } |
| | | </call> |
| | | |
| | | |
| | | <!-- Check modify worked on "master" server --> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : masterHost , |
| | | 'dsInstancePort' : master.getPort() , |
| | | 'dsInstanceDn' : master.getRootDn() , |
| | | 'dsInstancePswd' : master.getRootPwd() , |
| | | 'dsBaseDN' : 'uid=hmiller, ou=People,%s' % synchroSuffix, |
| | | 'dsFilter' : 'jpegPhoto=*', |
| | | 'expectedRC' : 0 } |
| | | </call> |
| | | <script> |
| | | searchRC = STAXResult[0][0] |
| | | searchResult = STAXResult[0][1] |
| | | resultLength = len(searchResult) > 0 |
| | | </script> |
| | | <call function="'checktestRC'"> |
| | | { 'returncode' : resultLength , |
| | | 'result' : searchResult , |
| | | 'expected' : 1 } |
| | | </call> |
| | | |
| | | |
| | | <!-- Verify the synchronization of the trees among the servers in |
| | | the topology --> |
| | | <call function="'verifyTrees'"> |
| | | [ clientHost, clientPath, master, consumerList, synchroSuffix ] |
| | | </call> |
| | | |
| | | <call function="'testCase_Postamble'"/> |
| | | </sequence> |
| | | </testcase> |
| | | |
| | | |
| | | |
| | | |
| | | <!--- Test Case information |
| | | #@TestMarker Replication Encryption Tests |
| | | #@TestName Replication: Encryption: Modify Entry - |
| | | replace binary attribute |
| | | #@TestID Modify Entry - replace binary attribute |
| | | #@TestPurpose Check that an entry modify is well propagated |
| | | by secured replication. |
| | | #@TestPreamble |
| | | #@TestSteps |
| | | #@TestPostamble |
| | | #@TestResult |
| | | --> |
| | | <testcase name="getTestCaseName |
| | | ('Modify Entry - replace binary attribute')"> |
| | | <sequence> |
| | | <call function="'testCase_Preamble'"/> |
| | | <message> |
| | | 'Replication: Encryption: Modify Entry - replace binary attribute. \ |
| | | Check that an entry modify is well propagated by secured \ |
| | | replication.' |
| | | </message> |
| | | |
| | | <script> |
| | | filename = 'replication_mod_replace_binary.ldif' |
| | | filePath = '%s/%s' % (logsTestDataDir,filename) |
| | | binaryFilePath = '%s/photo2.uu' % testsGroupDir |
| | | dn = 'uid=hmiller, ou=People,%s' % synchroSuffix |
| | | modif = 'replace' |
| | | attrType = 'jpegPhoto' |
| | | write_replication_mod_binary_ldif_file(filePath, dn, modif, attrType, |
| | | binaryFilePath) |
| | | </script> |
| | | |
| | | <!-- Copy the replication_mod ldif to client host --> |
| | | <message> |
| | | 'Copy %s file from %s to %s' % (filename,logsTestDataDir, |
| | | clientDataDir) |
| | | </message> |
| | | <call function="'copyFile'"> |
| | | { 'srcfile' : filePath, |
| | | 'destfile' : '%s/%s' % (clientDataDir,filename), |
| | | 'remotehost' : client.getHostname() } |
| | | </call> |
| | | |
| | | <!-- Modify "master" server --> |
| | | <call function="'ldapModifyWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : masterHost , |
| | | 'dsInstancePort' : master.getPort() , |
| | | 'dsInstanceDn' : master.getRootDn() , |
| | | 'dsInstancePswd' : master.getRootPwd() , |
| | | 'dsFilename' : '%s/%s' % (clientDataDir, filename) } |
| | | </call> |
| | | |
| | | |
| | | <!-- Check modify worked on "master" server --> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : masterHost , |
| | | 'dsInstancePort' : master.getPort() , |
| | | 'dsInstanceDn' : master.getRootDn() , |
| | | 'dsInstancePswd' : master.getRootPwd() , |
| | | 'dsBaseDN' : 'uid=hmiller, ou=People,%s' % synchroSuffix, |
| | | 'dsFilter' : 'jpegPhoto=*', |
| | | 'expectedRC' : 0 } |
| | | </call> |
| | | <script> |
| | | searchRC = STAXResult[0][0] |
| | | searchResult = STAXResult[0][1] |
| | | resultLength = len(searchResult) > 0 |
| | | </script> |
| | | <call function="'checktestRC'"> |
| | | { 'returncode' : resultLength , |
| | | 'result' : searchResult , |
| | | 'expected' : 1 } |
| | | </call> |
| | | |
| | | |
| | | <!-- Verify the synchronization of the trees among the servers in |
| | | the topology --> |
| | | <call function="'verifyTrees'"> |
| | | [ clientHost, clientPath, master, consumerList, synchroSuffix ] |
| | | </call> |
| | | |
| | | <call function="'testCase_Postamble'"/> |
| | | </sequence> |
| | | </testcase> |
| | | |
| | | |
| | | |
| | | |
| | | <!--- Test Case information |
| | | #@TestMarker Replication Encryption Tests |
| | | #@TestName Replication: Encryption: Modify Entry - |
| | | delete binary attribute |
| | | #@TestID Modify Entry - delete binary attribute |
| | | #@TestPurpose Check that an entry modify is well propagated |
| | | by secured replication. |
| | | #@TestPreamble |
| | | #@TestSteps |
| | | #@TestPostamble |
| | | #@TestResult |
| | | --> |
| | | <testcase name="getTestCaseName |
| | | ('Modify Entry - delete binary attribute')"> |
| | | <sequence> |
| | | <call function="'testCase_Preamble'"/> |
| | | <message> |
| | | 'Replication: Encryption: Modify Entry - delete binary attribute. \ |
| | | Check that an entry modify is well propagated by secured \ |
| | | replication.' |
| | | </message> |
| | | |
| | | |
| | | <script> |
| | | filename = 'replication_mod_delete_binary.ldif' |
| | | filePath = '%s/%s' % (logsTestDataDir,filename) |
| | | dn = 'uid=hmiller, ou=People,%s' % synchroSuffix |
| | | modif = 'delete' |
| | | attrType = 'jpegPhoto' |
| | | attrValue = None |
| | | write_replication_mod_ldif_file(filePath, dn, modif, attrType, |
| | | attrValue) |
| | | </script> |
| | | |
| | | <!-- Copy the replication_mod ldif to client host --> |
| | | <message> |
| | | 'Copy %s file from %s to %s' % (filename,logsTestDataDir, |
| | | clientDataDir) |
| | | </message> |
| | | <call function="'copyFile'"> |
| | | { 'srcfile' : filePath, |
| | | 'destfile' : '%s/%s' % (clientDataDir,filename), |
| | | 'remotehost' : client.getHostname() } |
| | | </call> |
| | | |
| | | <!-- Modify "master" server --> |
| | | <call function="'ldapModifyWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : masterHost , |
| | | 'dsInstancePort' : master.getPort() , |
| | | 'dsInstanceDn' : master.getRootDn() , |
| | | 'dsInstancePswd' : master.getRootPwd() , |
| | | 'dsFilename' : '%s/%s' % (clientDataDir, filename) } |
| | | </call> |
| | | |
| | | <!-- Check modify worked on "master" server --> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : masterHost , |
| | | 'dsInstancePort' : master.getPort() , |
| | | 'dsInstanceDn' : master.getRootDn() , |
| | | 'dsInstancePswd' : master.getRootPwd() , |
| | | 'dsBaseDN' : 'uid=hmiller, ou=People,%s' % synchroSuffix, |
| | | 'dsFilter' : 'jpegPhoto=*', |
| | | 'expectedRC' : 0 } |
| | | </call> |
| | | <script> |
| | | searchRC = STAXResult[0][0] |
| | | searchResult = STAXResult[0][1] |
| | | resultLength = len(searchResult) > 0 |
| | | </script> |
| | | <call function="'checktestRC'"> |
| | | { 'returncode' : resultLength , |
| | | 'result' : searchResult , |
| | | 'expected' : 0 } |
| | | </call> |
| | | |
| | | |
| | | <!-- Verify the synchronization of the trees among the servers in |
| | | the topology --> |
| | | <call function="'verifyTrees'"> |
| | | [ clientHost, clientPath, master, consumerList, synchroSuffix ] |
| | | </call> |
| | | |
| | | <call function="'testCase_Postamble'"/> |
| | | </sequence> |
| | | </testcase> |
| | | |
| | | |
| | | |
| | | |
| | | <!--- Test Case information |
| | | #@TestMarker Replication Encryption Tests |
| | | #@TestName Replication: Encryption: Rename Entry |
| | | #@TestID Rename Entry |
| | | #@TestPurpose Check that a rename (modrdn) operation is well |
| | | propagated by secured replication. |
| | | #@TestPreamble |
| | | #@TestSteps |
| | | #@TestPostamble |
| | | #@TestResult |
| | | --> |
| | | <testcase name="getTestCaseName('Rename Entry')"> |
| | | <sequence> |
| | | <call function="'testCase_Preamble'"/> |
| | | <message> |
| | | 'Replication: Encryption: Rename Entry. Check that a rename \ |
| | | (modrdn) operation is well propagated by secured replication.' |
| | | </message> |
| | | |
| | | <script> |
| | | filename = 'replication_modrdn.ldif' |
| | | filePath = '%s/%s' % (logsTestDataDir,filename) |
| | | dn = 'uid=kvaughan, ou=People,%s' % synchroSuffix |
| | | newrdn = 'uid=kvaughan2' |
| | | newsuperior = None |
| | | deleteoldrdn = 1 |
| | | write_replication_moddn_ldif_file(filePath, dn, newrdn, |
| | | newsuperior, deleteoldrdn) |
| | | </script> |
| | | |
| | | <!-- Copy the replication_mod ldif to client host --> |
| | | <message> |
| | | 'Copy %s file from %s to %s' % (filename,logsTestDataDir, |
| | | clientDataDir) |
| | | </message> |
| | | <call function="'copyFile'"> |
| | | { 'srcfile' : filePath, |
| | | 'destfile' : '%s/%s' % (clientDataDir,filename), |
| | | 'remotehost' : client.getHostname() } |
| | | </call> |
| | | |
| | | <!-- Modify "master" server --> |
| | | <call function="'ldapModifyWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : masterHost , |
| | | 'dsInstancePort' : master.getPort() , |
| | | 'dsInstanceDn' : master.getRootDn() , |
| | | 'dsInstancePswd' : master.getRootPwd() , |
| | | 'dsFilename' : '%s/%s' % (clientDataDir, filename) } |
| | | </call> |
| | | |
| | | |
| | | <!-- Check modify worked on "master" server --> |
| | | <!-- check that "uid=kvaughan, ou=People, ${DIRECTORY_BASE}" |
| | | does NOT exist anymore --> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : masterHost , |
| | | 'dsInstancePort' : master.getPort() , |
| | | 'dsInstanceDn' : master.getRootDn() , |
| | | 'dsInstancePswd' : master.getRootPwd() , |
| | | 'dsBaseDN' : 'uid=kvaughan, ou=People,%s' % synchroSuffix, |
| | | 'dsFilter' : 'objectclass=*', |
| | | 'expectedRC' : 32 } |
| | | </call> |
| | | |
| | | <!-- check that new entry "uid=kvaughan2, ou=People, |
| | | ${DIRECTORY_BASE}" exists --> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : masterHost , |
| | | 'dsInstancePort' : master.getPort() , |
| | | 'dsInstanceDn' : master.getRootDn() , |
| | | 'dsInstancePswd' : master.getRootPwd() , |
| | | 'dsBaseDN' : 'uid=kvaughan2, ou=People,%s' \ |
| | | % synchroSuffix, |
| | | 'dsFilter' : 'objectclass=*' } |
| | | </call> |
| | | |
| | | |
| | | <!-- Verify the synchronization of the trees among the servers in |
| | | the topology --> |
| | | <call function="'verifyTrees'"> |
| | | [ clientHost, clientPath, master, consumerList, synchroSuffix ] |
| | | </call> |
| | | |
| | | <call function="'testCase_Postamble'"/> |
| | | </sequence> |
| | | </testcase> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | <!--- Test Case information |
| | | #@TestMarker Replication Encryption Tests |
| | | #@TestName Replication: Encryption: Rename Entry |
| | | (preserving old rdn) |
| | | #@TestID Rename Entry (preserving old rdn) |
| | | #@TestPurpose Check that a rename (modrdn) operation is well |
| | | propagated by secured replication. |
| | | #@TestPreamble |
| | | #@TestSteps |
| | | #@TestPostamble |
| | | #@TestResult |
| | | --> |
| | | <testcase name="getTestCaseName |
| | | ('Rename Entry (preserving old rdn)')"> |
| | | <sequence> |
| | | <call function="'testCase_Preamble'"/> |
| | | <message> |
| | | 'Replication: Encryption: Rename Entry (preserving old rdn). \ |
| | | Check that a rename (modrdn) operation is well propagated by \ |
| | | secured replication.' |
| | | </message> |
| | | |
| | | <script> |
| | | filename = 'replication_modrdn_preserve.ldif' |
| | | filePath = '%s/%s' % (logsTestDataDir,filename) |
| | | dn = 'uid=jwallace, ou=People,%s' % synchroSuffix |
| | | newrdn = 'uid=igueye' |
| | | newsuperior = None |
| | | deleteoldrdn = 0 |
| | | write_replication_moddn_ldif_file(filePath, dn, newrdn, |
| | | newsuperior, deleteoldrdn) |
| | | </script> |
| | | |
| | | <!-- Copy the replication_mod ldif to client host --> |
| | | <message> |
| | | 'Copy %s file from %s to %s' % (filename,logsTestDataDir, |
| | | clientDataDir) |
| | | </message> |
| | | <call function="'copyFile'"> |
| | | { 'srcfile' : filePath, |
| | | 'destfile' : '%s/%s' % (clientDataDir,filename), |
| | | 'remotehost' : client.getHostname() } |
| | | </call> |
| | | |
| | | <!-- Modify "master" server --> |
| | | <call function="'ldapModifyWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : masterHost , |
| | | 'dsInstancePort' : master.getPort() , |
| | | 'dsInstanceDn' : master.getRootDn() , |
| | | 'dsInstancePswd' : master.getRootPwd() , |
| | | 'dsFilename' : '%s/%s' % (clientDataDir, filename) } |
| | | </call> |
| | | |
| | | |
| | | <!-- Check modify worked on "master" server --> |
| | | <!-- check that "uid=jwallace, ou=People, ${DIRECTORY_BASE}" |
| | | does NOT exist anymore --> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : masterHost , |
| | | 'dsInstancePort' : master.getPort() , |
| | | 'dsInstanceDn' : master.getRootDn() , |
| | | 'dsInstancePswd' : master.getRootPwd() , |
| | | 'dsBaseDN' : 'uid=jwallace, ou=People,%s' % synchroSuffix, |
| | | 'dsFilter' : 'objectclass=*', |
| | | 'expectedRC' : 32 } |
| | | </call> |
| | | |
| | | <!-- check that new entry "uid=igueye, ou=People, |
| | | ${DIRECTORY_BASE}" exists --> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : masterHost , |
| | | 'dsInstancePort' : master.getPort() , |
| | | 'dsInstanceDn' : master.getRootDn() , |
| | | 'dsInstancePswd' : master.getRootPwd() , |
| | | 'dsBaseDN' : 'uid=igueye, ou=People,%s' % synchroSuffix, |
| | | 'dsFilter' : 'uid=jwallace' } |
| | | </call> |
| | | <script> |
| | | searchRC = STAXResult[0][0] |
| | | searchResult = STAXResult[0][1] |
| | | resultLength = len(searchResult) > 0 |
| | | </script> |
| | | <call function="'checktestRC'"> |
| | | { 'returncode' : resultLength , |
| | | 'result' : searchResult , |
| | | 'expected' : 1 } |
| | | </call> |
| | | |
| | | |
| | | <!-- Verify the synchronization of the trees among the servers in |
| | | the topology --> |
| | | <call function="'verifyTrees'"> |
| | | [ clientHost, clientPath, master, consumerList, synchroSuffix ] |
| | | </call> |
| | | |
| | | <call function="'testCase_Postamble'"/> |
| | | </sequence> |
| | | </testcase> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | <!--- Test Case information |
| | | #@TestMarker Replication Encryption Tests |
| | | #@TestName Replication: Encryption: Rename Subtree |
| | | #@TestID Rename Subtree |
| | | #@TestPurpose Check that a subtree rename (moddn) operation |
| | | is well propagated by secured replication. |
| | | #@TestPreamble |
| | | #@TestSteps |
| | | #@TestPostamble |
| | | #@TestResult |
| | | --> |
| | | <testcase name="getTestCaseName('Rename Subtree')"> |
| | | <sequence> |
| | | <call function="'testCase_Preamble'"/> |
| | | <message> |
| | | 'Replication: Encryption: Rename Subtree. Check that a subtree \ |
| | | rename (moddn) operation is well propagated by secured \ |
| | | replication.' |
| | | </message> |
| | | |
| | | <script> |
| | | filename = 'replication_moddn.ldif' |
| | | filePath = '%s/%s' % (logsTestDataDir,filename) |
| | | dn = 'ou=People,%s' % synchroSuffix |
| | | newrdn = 'ou=Special People' |
| | | newsuperior = 'ou=Special Users,%s' % synchroSuffix |
| | | deleteoldrdn = 0 |
| | | write_replication_moddn_ldif_file(filePath, dn, newrdn, |
| | | newsuperior, deleteoldrdn) |
| | | </script> |
| | | |
| | | <!-- Copy the replication_mod ldif to client host --> |
| | | <message> |
| | | 'Copy %s file from %s to %s' % (filename,logsTestDataDir, |
| | | clientDataDir) |
| | | </message> |
| | | <call function="'copyFile'"> |
| | | { 'srcfile' : filePath, |
| | | 'destfile' : '%s/%s' % (clientDataDir,filename), |
| | | 'remotehost' : client.getHostname() } |
| | | </call> |
| | | |
| | | <!-- Modify "master" server --> |
| | | <call function="'ldapModifyWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : masterHost , |
| | | 'dsInstancePort' : master.getPort() , |
| | | 'dsInstanceDn' : master.getRootDn() , |
| | | 'dsInstancePswd' : master.getRootPwd() , |
| | | 'dsFilename' : '%s/%s' % (clientDataDir, filename) } |
| | | </call> |
| | | |
| | | |
| | | <!-- Check modify worked on "master" server --> |
| | | <!-- check that "uid=gfarmer, ou=People, ${DIRECTORY_BASE}" |
| | | does NOT exist anymore --> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : masterHost , |
| | | 'dsInstancePort' : master.getPort() , |
| | | 'dsInstanceDn' : master.getRootDn() , |
| | | 'dsInstancePswd' : master.getRootPwd() , |
| | | 'dsBaseDN' : 'uid=gfarmer, ou=People,%s' % synchroSuffix, |
| | | 'dsFilter' : 'objectclass=*', |
| | | 'expectedRC' : 32 } |
| | | </call> |
| | | |
| | | <!-- check that new entry "uid=gfarmer, ou=Special People, |
| | | ou=Special Users, ${DIRECTORY_BASE}" exists --> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : masterHost , |
| | | 'dsInstancePort' : master.getPort() , |
| | | 'dsInstanceDn' : master.getRootDn() , |
| | | 'dsInstancePswd' : master.getRootPwd() , |
| | | 'dsBaseDN' : 'uid=gfarmer, ou=Special People, \ |
| | | ou=Special Users,%s' % synchroSuffix, |
| | | 'dsFilter' : 'objectclass=*' } |
| | | </call> |
| | | |
| | | |
| | | <!-- Verify the synchronization of the trees among the servers in |
| | | the topology --> |
| | | <call function="'verifyTrees'"> |
| | | [ clientHost, clientPath, master, consumerList, synchroSuffix ] |
| | | </call> |
| | | |
| | | |
| | | <call function="'testCase_Postamble'"/> |
| | | </sequence> |
| | | </testcase> |
| | | |
| | | |
| | | |
| | | <import machine="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> |