| | |
| | | <!-- |
| | | <script> |
| | | listAttr=[] |
| | | listAttr.append('objectclass: top') |
| | | listAttr.append('objectclass: person') |
| | | listAttr.append('objectclass: mozillaobject') |
| | | listAttr.append('cn: Salmon Fish') |
| | | listAttr.append('sn: Fish') |
| | | listAttr.append('givenname: Salmon') |
| | | listAttr.append('l: Cupertino') |
| | | listAttr.append('uid: sfish') |
| | | listAttr.append('objectclass:top') |
| | | listAttr.append('objectclass:person') |
| | | listAttr.append('objectclass:mozillaobject') |
| | | listAttr.append('cn:Salmon Fish') |
| | | listAttr.append('sn:Fish') |
| | | listAttr.append('givenname:Salmon') |
| | | listAttr.append('l:Cupertino') |
| | | listAttr.append('uid:sfish') |
| | | </script> |
| | | |
| | | <call function="'addAnEntry'"> |
| | |
| | | |
| | | <!-- Search changelog in the various replication servers --> |
| | | <paralleliterate var="server" |
| | | in="_topologyServerList"> |
| | | in="_topologyServerList" |
| | | indexvar="i"> |
| | | <sequence> |
| | | <script> |
| | | serverPath = '%s/%s' % (server.getDir(), OPENDSNAME) |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | </script> |
| | | |
| | | <!-- Search for entry add --> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath, |
| | | 'dsInstanceHost' : replServer.getHostname(), |
| | | 'dsInstancePort' : replServer.getPort(), |
| | | 'dsInstanceDn' : replServer.getRootDn(), |
| | | 'dsInstancePswd' : replServer.getRootPwd(), |
| | | 'dsBaseDN' : 'dc=replicationChanges', |
| | | 'dsFilter' : 'uid=iabizen.0', |
| | | 'dsAttributes' : 'dn' |
| | |
| | | |
| | | <!-- Search for entry modify --> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath, |
| | | 'dsInstanceHost' : replServer.getHostname(), |
| | | 'dsInstancePort' : replServer.getPort(), |
| | | 'dsInstanceDn' : replServer.getRootDn(), |
| | | 'dsInstancePswd' : replServer.getRootPwd(), |
| | | 'dsBaseDN' : 'dc=replicationChanges', |
| | | 'dsFilter' : 'l=GEC', |
| | | 'dsAttributes' : 'dn' |
| | |
| | | <!-- Export changelog in the various replication servers, then |
| | | check for added entry in the exported files --> |
| | | <paralleliterate var="server" |
| | | in="_topologyServerList"> |
| | | in="_topologyServerList" |
| | | indexvar="i"> |
| | | <sequence> |
| | | |
| | | <script> |
| | | serverPath = '%s/%s' % (server.getDir(), OPENDSNAME) |
| | | serverDataDir = '%s/%s' % (server.getDir(),remote.reldatadir) |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | replServerDataDir = '%s/%s' \ |
| | | % (replServer.getDir(),remote.reldatadir) |
| | | exportedChangelog = \ |
| | | '%s/replication/changelog_export_online.ldif' \ |
| | | % serverDataDir |
| | | % replServerDataDir |
| | | </script> |
| | | |
| | | <!-- Export changelog data from server --> |
| | | <call function="'exportLdifTask'"> |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath, |
| | | 'dsInstanceHost' : replServer.getHostname(), |
| | | 'dsInstancePort' : replServer.getPort(), |
| | | 'dsInstanceDn' : replServer.getRootDn(), |
| | | 'dsInstancePswd' : replServer.getRootPwd(), |
| | | 'taskID' : 'changelog export task', |
| | | 'ldifFile' : exportedChangelog, |
| | | 'backEnd' : 'replicationChanges' |
| | |
| | | <!-- Check for the added entry inside the exported file --> |
| | | <call function="'grep'"> |
| | | { |
| | | 'location' : server.getHostname(), |
| | | 'location' : replServer.getHostname(), |
| | | 'filename' : exportedChangelog, |
| | | 'testString' : 'uid=iabizen.2' |
| | | } |
| | |
| | | </call> |
| | | |
| | | <!-- Stop the servers in the topology --> |
| | | <script> |
| | | if globalSplitServers: |
| | | serverList = _topologyReplServerList |
| | | else: |
| | | serverList = _topologyServerList |
| | | </script> |
| | | <call function="'stopServers'"> |
| | | [_topologyServerList] |
| | | [serverList] |
| | | </call> |
| | | |
| | | |
| | | <!-- Backup changelog in the various replication servers --> |
| | | <paralleliterate var="server" |
| | | in="_topologyServerList"> |
| | | in="_topologyServerList" |
| | | indexvar="i"> |
| | | <sequence> |
| | | <script> |
| | | serverPath = '%s/%s' % (server.getDir(), OPENDSNAME) |
| | | serverDataDir = '%s/%s' % (server.getDir(),remote.reldatadir) |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | replServerDataDir = '%s/%s' \ |
| | | % (replServer.getDir(),remote.reldatadir) |
| | | changelogBackupDir = '%s/replication/changelog_backup' \ |
| | | % serverDataDir |
| | | % replServerDataDir |
| | | </script> |
| | | |
| | | <call function="'backup'"> |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath, |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath, |
| | | 'backupDir' : changelogBackupDir, |
| | | 'backEnd' : 'replicationChanges' |
| | | } |
| | |
| | | </paralleliterate> |
| | | |
| | | <!-- Start the servers in the topology --> |
| | | <script> |
| | | if globalSplitServers: |
| | | serverList = _topologyReplServerList |
| | | else: |
| | | serverList = _topologyServerList |
| | | </script> |
| | | <call function="'startServers'"> |
| | | [_topologyServerList] |
| | | </call> |
| | | |
| | | [serverList] |
| | | </call> |
| | | |
| | | <!-- Add entry B to "master" server --> |
| | | <script> |
| | |
| | | |
| | | <!-- Stop the servers in the topology --> |
| | | <call function="'stopServers'"> |
| | | [_topologyServerList] |
| | | [_splitServerList] |
| | | </call> |
| | | |
| | | |
| | |
| | | <sequence> |
| | | |
| | | <script> |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | |
| | | serverPath = '%s/%s' % (server.getDir(), OPENDSNAME) |
| | | serverDataDir = '%s/%s' % (server.getDir(),remote.reldatadir) |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | replServerDataDir = '%s/%s' \ |
| | | % (replServer.getDir(),remote.reldatadir) |
| | | changelogBackupDir = '%s/replication/changelog_backup' \ |
| | | % serverDataDir |
| | | % replServerDataDir |
| | | </script> |
| | | |
| | | <!-- Restore master_backup --> |
| | |
| | | |
| | | <!-- Restore changelog_backup --> |
| | | <call function="'restore'"> |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath, |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath, |
| | | 'backupDir' : changelogBackupDir |
| | | } |
| | | </call> |
| | |
| | | |
| | | <!-- Start the servers in the topology --> |
| | | <call function="'startServers'"> |
| | | [_topologyServerList] |
| | | [_splitServerList] |
| | | </call> |
| | | |
| | | |
| | |
| | | <!-- Search synchroSuffix and changelog in the various servers, |
| | | looking for entries A (should be there) and B (shouldn't be) --> |
| | | <paralleliterate var="server" |
| | | in="_topologyServerList"> |
| | | <sequence> |
| | | in="_topologyServerList" |
| | | indexvar="i"> |
| | | <sequence> |
| | | <script> |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | |
| | | serverPath = '%s/%s' % (server.getDir(), OPENDSNAME) |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | </script> |
| | | |
| | | <!-- Search for entry A (should be there) --> |
| | |
| | | } |
| | | </call> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath, |
| | | 'dsInstanceHost' : replServer.getHostname(), |
| | | 'dsInstancePort' : replServer.getPort(), |
| | | 'dsInstanceDn' : replServer.getRootDn(), |
| | | 'dsInstancePswd' : replServer.getRootPwd(), |
| | | 'dsBaseDN' : 'dc=replicationChanges', |
| | | 'dsFilter' : 'uid=iabizen.A', |
| | | 'dsAttributes' : 'dn', |
| | |
| | | } |
| | | </call> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath, |
| | | 'dsInstanceHost' : replServer.getHostname(), |
| | | 'dsInstancePort' : replServer.getPort(), |
| | | 'dsInstanceDn' : replServer.getRootDn(), |
| | | 'dsInstancePswd' : replServer.getRootPwd(), |
| | | 'dsBaseDN' : 'dc=replicationChanges', |
| | | 'dsFilter' : 'uid=iabizen.B', |
| | | 'dsAttributes' : 'dn', |
| | |
| | | |
| | | <!-- Backup changelog in the various replication servers --> |
| | | <paralleliterate var="server" |
| | | in="_topologyServerList"> |
| | | in="_topologyServerList" |
| | | indexvar="i"> |
| | | <sequence> |
| | | <script> |
| | | serverPath = '%s/%s' % (server.getDir(), OPENDSNAME) |
| | | serverDataDir = '%s/%s' % (server.getDir(),remote.reldatadir) |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | replServerDataDir = '%s/%s' \ |
| | | % (replServer.getDir(),remote.reldatadir) |
| | | changelogBackupDir = \ |
| | | '%s/replication/changelog_backup_online' % serverDataDir |
| | | '%s/replication/changelog_backup_online' \ |
| | | % replServerDataDir |
| | | </script> |
| | | |
| | | <call function="'backupTask'"> |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath, |
| | | 'dsInstanceHost' : replServer.getHostname(), |
| | | 'dsInstancePort' : replServer.getPort(), |
| | | 'dsInstanceDn' : replServer.getRootDn(), |
| | | 'dsInstancePswd' : replServer.getRootPwd(), |
| | | 'taskID' : 'changelog backup task', |
| | | 'backupDir' : changelogBackupDir, |
| | | 'backEnd' : 'replicationChanges' |
| | |
| | | <sequence> |
| | | |
| | | <script> |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | |
| | | serverPath = '%s/%s' % (server.getDir(), OPENDSNAME) |
| | | serverDataDir = '%s/%s' % (server.getDir(),remote.reldatadir) |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | replServerDataDir = '%s/%s' \ |
| | | % (replServer.getDir(),remote.reldatadir) |
| | | changelogBackupDir = \ |
| | | '%s/replication/changelog_backup_online' % serverDataDir |
| | | '%s/replication/changelog_backup_online' \ |
| | | % replServerDataDir |
| | | </script> |
| | | |
| | | <!-- Restore changelog_backup --> |
| | | <call function="'restoreTask'"> |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath, |
| | | 'dsInstanceHost' : replServer.getHostname(), |
| | | 'dsInstancePort' : replServer.getPort(), |
| | | 'dsInstanceDn' : replServer.getRootDn(), |
| | | 'dsInstancePswd' : replServer.getRootPwd(), |
| | | 'taskID' : 'changelog restore task', |
| | | 'backupDir' : changelogBackupDir |
| | | } |
| | |
| | | looking for entries AA (should be there) and BB (shouldn't be) |
| | | --> |
| | | <paralleliterate var="server" |
| | | in="_topologyServerList"> |
| | | in="_topologyServerList" |
| | | indexvar="i"> |
| | | <sequence> |
| | | <script> |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | |
| | | serverPath = '%s/%s' % (server.getDir(), OPENDSNAME) |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | </script> |
| | | |
| | | |
| | | <!-- Search for entry AA (should be there) --> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : server.getHostname(), |
| | |
| | | } |
| | | </call> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath, |
| | | 'dsInstanceHost' : replServer.getHostname(), |
| | | 'dsInstancePort' : replServer.getPort(), |
| | | 'dsInstanceDn' : replServer.getRootDn(), |
| | | 'dsInstancePswd' : replServer.getRootPwd(), |
| | | 'dsBaseDN' : 'dc=replicationChanges', |
| | | 'dsFilter' : 'uid=iabizen.AA', |
| | | 'dsAttributes' : 'dn', |
| | |
| | | } |
| | | </call> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath, |
| | | 'dsInstanceHost' : replServer.getHostname(), |
| | | 'dsInstancePort' : replServer.getPort(), |
| | | 'dsInstanceDn' : replServer.getRootDn(), |
| | | 'dsInstancePswd' : replServer.getRootPwd(), |
| | | 'dsBaseDN' : 'dc=replicationChanges', |
| | | 'dsFilter' : 'uid=iabizen.BB', |
| | | 'dsAttributes' : 'dn', |
| | |
| | | |
| | | <!-- Search changelog in the various replication servers --> |
| | | <paralleliterate var="server" |
| | | in="_topologyServerList"> |
| | | in="_topologyServerList" |
| | | indexvar="i"> |
| | | <sequence> |
| | | |
| | | <script> |
| | | serverPath = '%s/%s' % (server.getDir(), OPENDSNAME) |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | </script> |
| | | |
| | | |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath, |
| | | 'dsInstanceHost' : replServer.getHostname(), |
| | | 'dsInstancePort' : replServer.getPort(), |
| | | 'dsInstanceDn' : replServer.getRootDn(), |
| | | 'dsInstancePswd' : replServer.getRootPwd(), |
| | | 'dsBaseDN' : 'dc=replicationChanges' , |
| | | 'dsFilter' : 'uid=iabizen.3', |
| | | 'dsAttributes' : 'dn' |
| | |
| | | |
| | | <!-- Search changelog in the various replication servers --> |
| | | <paralleliterate var="server" |
| | | in="_topologyServerList"> |
| | | <sequence> |
| | | in="_topologyServerList" |
| | | indexvar="i"> |
| | | <sequence> |
| | | <script> |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | |
| | | serverPath = '%s/%s' % (server.getDir(), OPENDSNAME) |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | </script> |
| | | |
| | | <!-- Search for entry in the suffix (should NOT be there) --> |
| | |
| | | <!-- Search for corresponding change in the changelog |
| | | (should NOT be there) --> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath, |
| | | 'dsInstanceHost' : replServer.getHostname(), |
| | | 'dsInstancePort' : replServer.getPort(), |
| | | 'dsInstanceDn' : replServer.getRootDn(), |
| | | 'dsInstancePswd' : replServer.getRootPwd(), |
| | | 'dsBaseDN' : 'dc=replicationChanges', |
| | | 'dsFilter' : 'uid=iabizen.3', |
| | | 'dsAttributes' : 'dn', |
| | |
| | | specified in the conf expires' |
| | | </message> |
| | | |
| | | <script> |
| | | if globalSplitServers: |
| | | masterReplServer = _topologyReplServerList[0] |
| | | else: |
| | | masterReplServer = master |
| | | |
| | | masterReplServerHost = masterReplServer.getHostname() |
| | | masterReplServerPath = '%s/%s' % \ |
| | | (masterReplServer.getDir(), OPENDSNAME) |
| | | </script> |
| | | |
| | | <message> |
| | | 'Set purge delay to 20 seconds on server %s:%s' \ |
| | | % (masterHost, master.getPort()) |
| | | % (masterReplServerHost, masterReplServer.getPort()) |
| | | </message> |
| | | |
| | | <!-- Set purge delay to 20s on "master" server --> |
| | | <call function="'dsconfigSet'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'dsInstanceHost' : masterHost, |
| | | 'dsInstanceAdminPort' : master.getAdminPort(), |
| | | 'dsInstanceDn' : master.getRootDn(), |
| | | 'dsInstancePswd' : master.getRootPwd(), |
| | | { 'location' : masterReplServerHost, |
| | | 'dsPath' : masterReplServerPath, |
| | | 'dsInstanceHost' : masterReplServerHost, |
| | | 'dsInstanceAdminPort' : masterReplServer.getAdminPort(), |
| | | 'dsInstanceDn' : masterReplServer.getRootDn(), |
| | | 'dsInstancePswd' : masterReplServer.getRootPwd(), |
| | | 'objectName' : 'replication-server' , |
| | | 'propertyType' : 'provider', |
| | | 'propertyName' : 'Multimaster Synchronization', |
| | |
| | | |
| | | <!-- Search changelog in the various replication servers --> |
| | | <paralleliterate var="server" |
| | | in="_topologyServerList"> |
| | | in="_topologyServerList" |
| | | indexvar="i"> |
| | | <sequence> |
| | | <script> |
| | | serverPath = '%s/%s' % (server.getDir(), OPENDSNAME) |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | </script> |
| | | |
| | | |
| | | <call function="'ldapSearchWithScript'"> |
| | | { |
| | | 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath, |
| | | 'dsInstanceHost' : replServer.getHostname(), |
| | | 'dsInstancePort' : replServer.getPort(), |
| | | 'dsInstanceDn' : replServer.getRootDn(), |
| | | 'dsInstancePswd' : replServer.getRootPwd(), |
| | | 'dsBaseDN' : 'dc=replicationChanges' , |
| | | 'dsFilter' : 'uid=iabizen.X', |
| | | 'dsAttributes' : 'dn' |
| | |
| | | indexvar="i"> |
| | | <sequence> |
| | | <script> |
| | | serverPath = '%s/%s' % (server.getDir(), OPENDSNAME) |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | </script> |
| | | |
| | | <call function="'ldapSearchWithScript'"> |
| | | { |
| | | 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath, |
| | | 'dsInstanceHost' : replServer.getHostname(), |
| | | 'dsInstancePort' : replServer.getPort(), |
| | | 'dsInstanceDn' : replServer.getRootDn(), |
| | | 'dsInstancePswd' : replServer.getRootPwd(), |
| | | 'dsBaseDN' : 'dc=replicationChanges', |
| | | 'dsFilter' : 'uid=iabizen.X', |
| | | 'dsAttributes' : 'dn', |
| | |
| | | resultLength = len(searchResult) > 0 |
| | | |
| | | if i == 0: |
| | | # index [0] corresponds to "master" server |
| | | # index [0] corresponds to "master" repl server |
| | | # => purge delay expired => changelog purged |
| | | # => expect NO entry returned |
| | | # => len(searchResult) = 0 => resultLength = 0 |
| | |
| | | server2DataDir = '%s/%s' % (server2.getDir(),remote.reldatadir) |
| | | server1name = '%s:%s' % (server1Host, server1.getPort()) |
| | | server2name = '%s:%s' % (server2Host, server2.getPort()) |
| | | |
| | | if globalSplitServers: |
| | | replServer1 = _topologyReplServerList[0] |
| | | replServer2 = _topologyReplServerList[1] |
| | | else: |
| | | replServer1 = server1 |
| | | replServer2 = server2 |
| | | |
| | | # Filter used for retrieving conflict counters from cn=monitor |
| | | filter0 = '(base-dn=%s)' % synchroSuffix |
| | |
| | | |
| | | <!-- Disconnect Replication Servers --> |
| | | <call function="'disconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <iterate var="server" |
| | |
| | | |
| | | <!-- Reconnect Replication Servers --> |
| | | <call function="'reconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <!-- Check conflict is resolved --> |
| | |
| | | |
| | | <!-- Disconnect Replication Servers --> |
| | | <call function="'disconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <iterate var="server" |
| | |
| | | |
| | | <!-- Reconnect Replication Servers --> |
| | | <call function="'reconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <!-- Check conflict is resolved --> |
| | |
| | | |
| | | <!-- Disconnect Replication Servers --> |
| | | <call function="'disconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <iterate var="server" |
| | |
| | | |
| | | <!-- Reconnect Replication Servers --> |
| | | <call function="'reconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <!-- Check conflict is resolved --> |
| | |
| | | |
| | | <!-- Disconnect Replication Servers --> |
| | | <call function="'disconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <iterate var="server" |
| | |
| | | |
| | | <!-- Reconnect Replication Servers --> |
| | | <call function="'reconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <!-- Check conflict is resolved --> |
| | |
| | | |
| | | <!-- Disconnect Replication Servers --> |
| | | <call function="'disconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <iterate var="server" |
| | |
| | | |
| | | <!-- Reconnect Replication Servers --> |
| | | <call function="'reconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <!-- Check conflict is resolved --> |
| | |
| | | |
| | | <!-- Disconnect Replication Servers --> |
| | | <call function="'disconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <iterate var="server" |
| | |
| | | |
| | | <!-- Reconnect Replication Servers --> |
| | | <call function="'reconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <!-- Check conflict is resolved --> |
| | |
| | | |
| | | <!-- Disconnect Replication Servers --> |
| | | <call function="'disconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <iterate var="server" |
| | |
| | | |
| | | <!-- Reconnect Replication Servers --> |
| | | <call function="'reconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <!-- Check conflict is resolved --> |
| | |
| | | |
| | | <!-- Disconnect Replication Servers --> |
| | | <call function="'disconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <iterate var="server" |
| | |
| | | |
| | | <!-- Reconnect Replication Servers --> |
| | | <call function="'reconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <!-- Check conflict is resolved --> |
| | |
| | | |
| | | <!-- Disconnect Replication Servers --> |
| | | <call function="'disconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <iterate var="server" |
| | |
| | | |
| | | <!-- Reconnect Replication Servers --> |
| | | <call function="'reconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <!-- Check conflict is resolved --> |
| | |
| | | |
| | | <!-- Disconnect Replication Servers --> |
| | | <call function="'disconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <iterate var="server" |
| | |
| | | |
| | | <!-- Reconnect Replication Servers --> |
| | | <call function="'reconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <!-- Check conflict is resolved --> |
| | |
| | | |
| | | <!-- Disconnect Replication Servers --> |
| | | <call function="'disconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <iterate var="server" |
| | |
| | | |
| | | <!-- Reconnect Replication Servers --> |
| | | <call function="'reconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <!-- Check conflict is resolved --> |
| | |
| | | |
| | | <!-- Disconnect Replication Servers --> |
| | | <call function="'disconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <iterate var="server" |
| | |
| | | |
| | | <!-- Reconnect Replication Servers --> |
| | | <call function="'reconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <!-- Check conflict is resolved --> |
| | |
| | | |
| | | <!-- Disconnect Replication Servers --> |
| | | <call function="'disconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <iterate var="server" |
| | |
| | | |
| | | <!-- Reconnect Replication Servers --> |
| | | <call function="'reconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <!-- Check conflict is resolved --> |
| | |
| | | |
| | | <!-- Disconnect Replication Servers --> |
| | | <call function="'disconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <!-- Add child entry on server2 --> |
| | |
| | | |
| | | <!-- Reconnect Replication Servers --> |
| | | <call function="'reconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <!-- Check conflict is resolved --> |
| | |
| | | |
| | | <!-- Disconnect Replication Servers --> |
| | | <call function="'disconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <!-- Delete parent entry on server1--> |
| | |
| | | |
| | | <!-- Reconnect Replication Servers --> |
| | | <call function="'reconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <!-- Check conflict is resolved --> |
| | |
| | | |
| | | <!-- Disconnect Replication Servers --> |
| | | <call function="'disconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <iterate var="server" |
| | |
| | | |
| | | <!-- Reconnect Replication Servers --> |
| | | <call function="'reconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <!-- Check conflict is resolved --> |
| | |
| | | |
| | | <!-- Disconnect Replication Servers --> |
| | | <call function="'disconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <iterate var="server" |
| | |
| | | |
| | | <!-- Reconnect Replication Servers --> |
| | | <call function="'reconnectReplicationServers'"> |
| | | [ clientHost, clientPath, [server1, server2] ] |
| | | [ clientHost, clientPath, [replServer1, replServer2] ] |
| | | </call> |
| | | |
| | | <!-- Delete entry on server1--> |
| | |
| | | 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') |
| | | listAttr.append('l:ICNC') |
| | | </script> |
| | | |
| | | <call function="'addAnEntry'"> |
| | |
| | | nextServer = _topologyServerList[(i + 1) % nbOfServers] |
| | | nextServerPath = '%s/%s' % (nextServer.getDir(), OPENDSNAME) |
| | | userDn = 'uid=iabizen-%s, ou=People, %s' % (i, synchroSuffix) |
| | | |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | </script> |
| | | |
| | | <!-- Stop server (simulate failover?) --> |
| | |
| | | 'dsBindPwd' : server.getRootPwd() |
| | | } |
| | | </call> |
| | | <if expr="globalSplitServers"> |
| | | <call function="'StopDsWithScript'"> |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath, |
| | | 'dsHost' : replServer.getHostname(), |
| | | 'dsAdminPort' : replServer.getAdminPort(), |
| | | 'dsBindDN' : replServer.getRootDn(), |
| | | 'dsBindPwd' : replServer.getRootPwd() |
| | | } |
| | | </call> |
| | | </if> |
| | | |
| | | <!-- Add entry to one of the other servers --> |
| | | <script> |
| | |
| | | </script> |
| | | |
| | | <call function="'addAnEntry'"> |
| | | { 'location' : nextServer.getHostname(), |
| | | 'dsPath' : nextServerPath, |
| | | 'dsInstanceHost' : nextServer.getHostname(), |
| | | 'dsInstancePort' : nextServer.getPort(), |
| | | 'dsInstanceDn' : nextServer.getRootDn(), |
| | | 'dsInstancePswd' : nextServer.getRootPwd(), |
| | | 'DNToAdd' : userDn, |
| | | { 'location' : nextServer.getHostname(), |
| | | 'dsPath' : nextServerPath, |
| | | 'dsInstanceHost' : nextServer.getHostname(), |
| | | 'dsInstancePort' : nextServer.getPort(), |
| | | 'dsInstanceDn' : nextServer.getRootDn(), |
| | | 'dsInstancePswd' : nextServer.getRootPwd(), |
| | | 'DNToAdd' : userDn, |
| | | 'listAttributes' : listAttr, |
| | | 'expectedRC' : 0 |
| | | } |
| | |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath |
| | | } |
| | | </call> |
| | | </call> |
| | | <if expr="globalSplitServers"> |
| | | <call function="'StartDsWithScript'"> |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath |
| | | } |
| | | </call> |
| | | </if> |
| | | </sequence> |
| | | </iterate> |
| | | |
| | |
| | | 'Replication: Failover: All but one servers down (stopped). Check replication when all but one servers are off-line' |
| | | </message> |
| | | |
| | | <!-- Start the "consumer" servers --> |
| | | <!-- Stop the "consumer" servers --> |
| | | <call function="'stopServers'"> |
| | | [consumerList] |
| | | </call> |
| | | <if expr="globalSplitServers"> |
| | | <call function="'stopServers'"> |
| | | [_topologyReplServerList[1:]] |
| | | </call> |
| | | </if> |
| | | |
| | | |
| | | <!-- Add entry to master servers --> |
| | |
| | | </script> |
| | | |
| | | <call function="'addAnEntry'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'dsInstanceHost' : masterHost, |
| | | 'dsInstancePort' : master.getPort(), |
| | | 'dsInstanceDn' : master.getRootDn(), |
| | | 'dsInstancePswd' : master.getRootPwd(), |
| | | 'DNToAdd' : userDn, |
| | | 'listAttributes' : listAttr, |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'dsInstanceHost' : masterHost, |
| | | 'dsInstancePort' : master.getPort(), |
| | | 'dsInstanceDn' : master.getRootDn(), |
| | | 'dsInstancePswd' : master.getRootPwd(), |
| | | 'DNToAdd' : userDn, |
| | | 'listAttributes' : listAttr, |
| | | 'expectedRC' : 0 |
| | | } |
| | | </call> |
| | |
| | | <call function="'startServers'"> |
| | | [consumerList] |
| | | </call> |
| | | <if expr="globalSplitServers"> |
| | | <call function="'startServers'"> |
| | | [_topologyReplServerList[1:]] |
| | | </call> |
| | | </if> |
| | | |
| | | |
| | | <!-- Verify the synchronization of the trees among the servers in the topology --> |
| | |
| | | nextServer = _topologyServerList[(i + 1) % nbOfServers] |
| | | nextServerPath = '%s/%s' % (nextServer.getDir(), OPENDSNAME) |
| | | userDn = 'uid=ideiturak-%s, ou=People, %s' % (i, synchroSuffix) |
| | | |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | </script> |
| | | |
| | | <!-- Kill server (simulate failover?) --> |
| | |
| | | 'dsPath' : serverPath |
| | | } |
| | | </call> |
| | | <if expr="globalSplitServers"> |
| | | <call function="'killDs'"> |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath |
| | | } |
| | | </call> |
| | | </if> |
| | | |
| | | <!-- Add entry to one of the other servers --> |
| | | <script> |
| | |
| | | </script> |
| | | |
| | | <call function="'addAnEntry'"> |
| | | { 'location' : nextServer.getHostname(), |
| | | 'dsPath' : nextServerPath, |
| | | 'dsInstanceHost' : nextServer.getHostname(), |
| | | 'dsInstancePort' : nextServer.getPort(), |
| | | 'dsInstanceDn' : nextServer.getRootDn(), |
| | | 'dsInstancePswd' : nextServer.getRootPwd(), |
| | | 'DNToAdd' : userDn, |
| | | { 'location' : nextServer.getHostname(), |
| | | 'dsPath' : nextServerPath, |
| | | 'dsInstanceHost' : nextServer.getHostname(), |
| | | 'dsInstancePort' : nextServer.getPort(), |
| | | 'dsInstanceDn' : nextServer.getRootDn(), |
| | | 'dsInstancePswd' : nextServer.getRootPwd(), |
| | | 'DNToAdd' : userDn, |
| | | 'listAttributes' : listAttr, |
| | | 'expectedRC' : 0 |
| | | } |
| | |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath |
| | | } |
| | | </call> |
| | | </call> |
| | | <if expr="globalSplitServers"> |
| | | <call function="'StartDsWithScript'"> |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath |
| | | } |
| | | </call> |
| | | </if> |
| | | |
| | | </sequence> |
| | | </iterate> |
| | | |
| | |
| | | 'Replication: Failover: All but one servers down (killed). Check replication when all but one servers fail' |
| | | </message> |
| | | |
| | | <paralleliterate var="server" in="consumerList"> |
| | | <paralleliterate var="server" in="consumerList" indexvar="i"> |
| | | <sequence> |
| | | <script> |
| | | serverPath = '%s/%s' % (server.getDir(), OPENDSNAME) |
| | | |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i+1] |
| | | else: |
| | | replServer = server |
| | | |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | </script> |
| | | |
| | | <!-- Kill server (simulate failover?) --> |
| | |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath |
| | | } |
| | | </call> |
| | | </call> |
| | | <if expr="globalSplitServers"> |
| | | <call function="'killDs'"> |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath |
| | | } |
| | | </call> |
| | | </if> |
| | | </sequence> |
| | | </paralleliterate> |
| | | |
| | |
| | | </script> |
| | | |
| | | <call function="'addAnEntry'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'dsInstanceHost' : masterHost, |
| | | 'dsInstancePort' : master.getPort(), |
| | | 'dsInstanceDn' : master.getRootDn(), |
| | | 'dsInstancePswd' : master.getRootPwd(), |
| | | 'DNToAdd' : userDn, |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'dsInstanceHost' : masterHost, |
| | | 'dsInstancePort' : master.getPort(), |
| | | 'dsInstanceDn' : master.getRootDn(), |
| | | 'dsInstancePswd' : master.getRootPwd(), |
| | | 'DNToAdd' : userDn, |
| | | 'listAttributes' : listAttr, |
| | | 'expectedRC' : 0 |
| | | } |
| | |
| | | <call function="'startServers'"> |
| | | [consumerList] |
| | | </call> |
| | | <if expr="globalSplitServers"> |
| | | <call function="'startServers'"> |
| | | [_topologyReplServerList[1:]] |
| | | </call> |
| | | </if> |
| | | |
| | | |
| | | <!-- Verify the synchronization of the trees among the servers in the topology --> |
| | |
| | | testList.append('conflict') |
| | | |
| | | globalAssuredReplication = None |
| | | |
| | | if (REPLICATION_SPLIT_SERVERS == 'true'): |
| | | globalSplitServers = True |
| | | else: |
| | | globalSplitServers = None |
| | | </script> |
| | | |
| | | <iterate var="_test" in="testList" > |
| | |
| | | |
| | | <!-- Stop the servers in the topology --> |
| | | <call function="'stopServers'"> |
| | | [_topologyServerList] |
| | | [_splitServerList] |
| | | </call> |
| | | |
| | | <!-- Copy the server logs to the controller machine --> |
| | | <if expr="suiteSuffix != None"> |
| | | <paralleliterate var="server" in="_topologyServerList" indexvar="i"> |
| | | <paralleliterate var="server" in="_splitServerList" indexvar="i"> |
| | | <sequence> |
| | | <script> |
| | | suffix = suiteSuffix + '_%s' % (i + 1) |
| | |
| | | </message> |
| | | |
| | | <call function="'createTopology'"> |
| | | { 'topologyDescFile' : topologyFile, |
| | | 'sharedDataFolder' : 'replication' |
| | | { 'topologyDescFile' : topologyFile, |
| | | 'sharedDataFolder' : 'replication', |
| | | 'splitReplicationServers' : globalSplitServers |
| | | } |
| | | </call> |
| | | |
| | |
| | | |
| | | <!-- Start the servers in the topology --> |
| | | <call function="'startServers'"> |
| | | [_topologyServerList] |
| | | [_splitServerList] |
| | | </call> |
| | | |
| | | |
| | | <iterate var="server" in="consumerList"> |
| | | <iterate var="server" in="_splitServerList[1:]"> |
| | | <sequence> |
| | | <!-- Configure replication if required so by the server |
| | | ! (i.e. server is a changelog server and/or has synchronized |
| | |
| | | </message> |
| | | |
| | | <script> |
| | | replicationServer = server.getChangelogServer() |
| | | replicatedSuffixList = server.getSynchronizedSuffixList() |
| | | if master.isOnlyLdapServer(): |
| | | masterReplPort = None |
| | | else: |
| | | masterReplPort = masterReplicationServer.getPort() |
| | | |
| | | if server.isOnlyLdapServer(): |
| | | serverReplPort = None |
| | | else: |
| | | replicationServer = server.getChangelogServer() |
| | | serverReplPort = replicationServer.getPort() |
| | | |
| | | if server.isOnlyReplServer(): |
| | | suffixServer = master |
| | | else: |
| | | suffixServer = server |
| | | |
| | | replicatedSuffixList = suffixServer.getSynchronizedSuffixList() |
| | | replicatedDnList = [] |
| | | for suffix in replicatedSuffixList: |
| | | replicatedDnList.append(suffix.getSuffixDn()) |
| | |
| | | 'Enable replication for server:\nHost: %s\nLdap port: %s\n\ |
| | | Replication port: %s\nReplicated DN list: %s' \ |
| | | % (server.getHostname(), server.getPort(), |
| | | replicationServer.getPort(), replicatedDnList) |
| | | serverReplPort, replicatedDnList) |
| | | </message> |
| | | |
| | | <call function="'enableReplication'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstanceAdminPort' : server.getAdminPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | 'dsReplicationPort' : replicationServer.getPort(), |
| | | 'dsSecureReplication' : secureReplication, |
| | | 'refInstanceHost' : masterHost, |
| | | 'refInstanceAdminPort' : master.getAdminPort(), |
| | | 'refInstanceDn' : master.getRootDn(), |
| | | 'refInstancePswd' : master.getRootPwd(), |
| | | 'refReplicationPort' : masterReplicationServer.getPort(), |
| | | 'refReplicationPort' : masterReplPort, |
| | | 'refSecureReplication' : secureReplication, |
| | | 'replicationDnList' : replicatedDnList, |
| | | 'useSecondServerAsSchemaSource' : True |
| | | 'refOnlyLdapServer' : master.isOnlyLdapServer(), |
| | | 'refOnlyReplServer' : master.isOnlyReplServer(), |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstanceAdminPort' : server.getAdminPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | 'dsReplicationPort' : serverReplPort, |
| | | 'dsSecureReplication' : secureReplication, |
| | | 'dsOnlyLdapServer' : server.isOnlyLdapServer(), |
| | | 'dsOnlyReplServer' : server.isOnlyReplServer(), |
| | | 'replicationDnList' : replicatedDnList |
| | | } |
| | | </call> |
| | | </sequence> |
| | |
| | | ! Server. |
| | | ! This is used by the Conflict testsuite, in order to be able |
| | | ! to simulate conflict scenarios --> |
| | | <paralleliterate var="server" in="_topologyServerList"> |
| | | <paralleliterate var="server" in="_topologyServerList" indexvar="i"> |
| | | <sequence> |
| | | <script> |
| | | ldapServer = '%s:%s' % (server.getHostname(), |
| | |
| | | </if> |
| | | |
| | | <script> |
| | | replicationServer = server.getChangelogServer() |
| | | replServer = '%s:%s' % (server.getHostname(), |
| | | replicationServer.getPort()) |
| | | if globalSplitServers: |
| | | splitServer = _topologyReplServerList[i] |
| | | replicationServer = splitServer.getChangelogServer() |
| | | replServer = '%s:%s' % (splitServer.getHostname(), |
| | | replicationServer.getPort()) |
| | | else: |
| | | replicationServer = server.getChangelogServer() |
| | | replServer = '%s:%s' % (server.getHostname(), |
| | | replicationServer.getPort()) |
| | | |
| | | options = '--domain-name "%s" --set replication-server:%s' \ |
| | | % (domainMap[ldapServer], replServer) |
| | | </script> |
| | |
| | | |
| | | <script> |
| | | server3 = _topologyServerList[2] |
| | | replicationServer3 = server3.getChangelogServer() |
| | | |
| | | # Remove 3rd server from replicated servers list until replication |
| | | # is enabled on the 3rd one |
| | |
| | | Initialise newly added server using on-line backup/restore' |
| | | </message> |
| | | |
| | | <paralleliterate var="server" in="_topologyServerList"> |
| | | <paralleliterate var="server" |
| | | in="_topologyServerList" |
| | | indexvar="i"> |
| | | <sequence> |
| | | <script> |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | </script> |
| | | <!-- Search for entry add --> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | 'dsInstanceHost' : replServer.getHostname(), |
| | | 'dsInstancePort' : replServer.getPort(), |
| | | 'dsInstanceDn' : replServer.getRootDn(), |
| | | 'dsInstancePswd' : replServer.getRootPwd(), |
| | | 'dsBaseDN' : 'dc=replicationChanges', |
| | | 'dsFilter' : 'uid=*' |
| | | } |
| | |
| | | </script> |
| | | <message> |
| | | '==> REPLICATION CHANGES %s:%s : \n%s\n' % \ |
| | | (server.getHostname(), server.getPort(), searchResult) |
| | | (replServer.getHostname(), replServer.getPort(), searchResult) |
| | | </message> |
| | | </sequence> |
| | | </paralleliterate> |
| | |
| | | } |
| | | </call> |
| | | |
| | | <paralleliterate var="server" in="_topologyServerList"> |
| | | <paralleliterate var="server" |
| | | in="_topologyServerList" |
| | | indexvar="i"> |
| | | <sequence> |
| | | <script> |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | </script> |
| | | <!-- Search for entry add --> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | 'dsInstanceHost' : replServer.getHostname(), |
| | | 'dsInstancePort' : replServer.getPort(), |
| | | 'dsInstanceDn' : replServer.getRootDn(), |
| | | 'dsInstancePswd' : replServer.getRootPwd(), |
| | | 'dsBaseDN' : 'dc=replicationChanges', |
| | | 'dsFilter' : 'uid=*' |
| | | } |
| | |
| | | </script> |
| | | <message> |
| | | '==> REPLICATION CHANGES %s:%s : \n%s\n' % \ |
| | | (server.getHostname(), server.getPort(), searchResult) |
| | | (replServer.getHostname(), replServer.getPort(), searchResult) |
| | | </message> |
| | | </sequence> |
| | | </paralleliterate> |
| | |
| | | } |
| | | </call> |
| | | |
| | | <paralleliterate var="server" in="_topologyServerList"> |
| | | <paralleliterate var="server" |
| | | in="_topologyServerList" |
| | | indexvar="i"> |
| | | <sequence> |
| | | <script> |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | </script> |
| | | <!-- Search for entry add --> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | 'dsInstanceHost' : replServer.getHostname(), |
| | | 'dsInstancePort' : replServer.getPort(), |
| | | 'dsInstanceDn' : replServer.getRootDn(), |
| | | 'dsInstancePswd' : replServer.getRootPwd(), |
| | | 'dsBaseDN' : 'dc=replicationChanges', |
| | | 'dsFilter' : 'uid=*' |
| | | } |
| | |
| | | </script> |
| | | <message> |
| | | '==> REPLICATION CHANGES %s:%s : \n%s\n' % \ |
| | | (server.getHostname(), server.getPort(), searchResult) |
| | | (replServer.getHostname(), replServer.getPort(), searchResult) |
| | | </message> |
| | | </sequence> |
| | | </paralleliterate> |
| | |
| | | } |
| | | </call> |
| | | |
| | | <paralleliterate var="server" in="_topologyServerList"> |
| | | <paralleliterate var="server" |
| | | in="_topologyServerList" |
| | | indexvar="i"> |
| | | <sequence> |
| | | <script> |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | </script> |
| | | <!-- Search for entry add --> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | 'dsInstanceHost' : replServer.getHostname(), |
| | | 'dsInstancePort' : replServer.getPort(), |
| | | 'dsInstanceDn' : replServer.getRootDn(), |
| | | 'dsInstancePswd' : replServer.getRootPwd(), |
| | | 'dsBaseDN' : 'dc=replicationChanges', |
| | | 'dsFilter' : 'uid=*' |
| | | } |
| | |
| | | </script> |
| | | <message> |
| | | '==> REPLICATION CHANGES %s:%s : \n%s\n' % \ |
| | | (server.getHostname(), server.getPort(), searchResult) |
| | | (replServer.getHostname(), replServer.getPort(), searchResult) |
| | | </message> |
| | | </sequence> |
| | | </paralleliterate> |
| | |
| | | } |
| | | </call> |
| | | |
| | | <paralleliterate var="server" in="_topologyServerList"> |
| | | <paralleliterate var="server" |
| | | in="_topologyServerList" |
| | | indexvar="i"> |
| | | <sequence> |
| | | <script> |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | </script> |
| | | <!-- Search for entry add --> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | 'dsInstanceHost' : replServer.getHostname(), |
| | | 'dsInstancePort' : replServer.getPort(), |
| | | 'dsInstanceDn' : replServer.getRootDn(), |
| | | 'dsInstancePswd' : replServer.getRootPwd(), |
| | | 'dsBaseDN' : 'dc=replicationChanges', |
| | | 'dsFilter' : 'uid=*' |
| | | } |
| | |
| | | </script> |
| | | <message> |
| | | '==> REPLICATION CHANGES %s:%s : \n%s\n' % \ |
| | | (server.getHostname(), server.getPort(), searchResult) |
| | | (replServer.getHostname(), replServer.getPort(), searchResult) |
| | | </message> |
| | | </sequence> |
| | | </paralleliterate> |
| | | |
| | | <!-- Add new server to topology --> |
| | | <script> |
| | | if master.isOnlyLdapServer(): |
| | | masterReplPort = None |
| | | else: |
| | | masterReplPort = masterReplicationServer.getPort() |
| | | |
| | | if server3.isOnlyLdapServer(): |
| | | server3ReplPort = None |
| | | else: |
| | | replicationServer3 = server3.getChangelogServer() |
| | | server3ReplPort = replicationServer3.getPort() |
| | | </script> |
| | | |
| | | <message> |
| | | '+++++ resynchronization add server: Enable replication for \ |
| | | server:\nHost: %s\nLdap port: %s\nReplication port: %s\n\ |
| | | Replicated DN list: %s' \ |
| | | % (server3.getHostname(), server3.getPort(), |
| | | replicationServer3.getPort(), [synchroSuffix]) |
| | | server3ReplPort, [synchroSuffix]) |
| | | </message> |
| | | |
| | | <call function="'enableReplication'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : server3.getHostname(), |
| | | 'dsInstanceAdminPort' : server3.getAdminPort(), |
| | | 'dsInstanceDn' : server3.getRootDn(), |
| | | 'dsInstancePswd' : server3.getRootPwd(), |
| | | 'dsReplicationPort' : replicationServer3.getPort(), |
| | | 'refInstanceHost' : masterHost, |
| | | 'refInstanceAdminPort' : master.getAdminPort(), |
| | | 'refInstanceDn' : master.getRootDn(), |
| | | 'refInstancePswd' : master.getRootPwd(), |
| | | 'refReplicationPort' : masterReplicationServer.getPort(), |
| | | 'refReplicationPort' : masterReplPort, |
| | | 'refOnlyLdapServer' : master.isOnlyLdapServer(), |
| | | 'refOnlyReplServer' : master.isOnlyReplServer(), |
| | | 'dsInstanceHost' : server3.getHostname(), |
| | | 'dsInstanceAdminPort' : server3.getAdminPort(), |
| | | 'dsInstanceDn' : server3.getRootDn(), |
| | | 'dsInstancePswd' : server3.getRootPwd(), |
| | | 'dsReplicationPort' : server3ReplPort, |
| | | 'dsOnlyLdapServer' : server3.isOnlyLdapServer(), |
| | | 'dsOnlyReplServer' : server3.isOnlyReplServer(), |
| | | 'replicationDnList' : [synchroSuffix] |
| | | } |
| | | </call> |
| | | </call> |
| | | |
| | | |
| | | <script> |
| | | # Add 3rd server to replicated servers list now that replication |
| | |
| | | consumerList = consumerList + [server3] |
| | | </script> |
| | | |
| | | <paralleliterate var="server" in="_topologyServerList"> |
| | | <paralleliterate var="server" |
| | | in="_topologyServerList" |
| | | indexvar="i"> |
| | | <sequence> |
| | | <script> |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | </script> |
| | | <!-- Search for entry add --> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | 'dsInstanceHost' : replServer.getHostname(), |
| | | 'dsInstancePort' : replServer.getPort(), |
| | | 'dsInstanceDn' : replServer.getRootDn(), |
| | | 'dsInstancePswd' : replServer.getRootPwd(), |
| | | 'dsBaseDN' : 'dc=replicationChanges', |
| | | 'dsFilter' : 'uid=*' |
| | | } |
| | |
| | | </script> |
| | | <message> |
| | | '==> REPLICATION CHANGES %s:%s : \n%s\n' % \ |
| | | (server.getHostname(), server.getPort(), searchResult) |
| | | (replServer.getHostname(), replServer.getPort(), searchResult) |
| | | </message> |
| | | </sequence> |
| | | </paralleliterate> |
| | |
| | | } |
| | | </call> |
| | | |
| | | <paralleliterate var="server" in="_topologyServerList"> |
| | | <paralleliterate var="server" |
| | | in="_topologyServerList" |
| | | indexvar="i"> |
| | | <sequence> |
| | | <script> |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | </script> |
| | | <!-- Search for entry add --> |
| | | <call function="'ldapSearchWithScript'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstancePort' : server.getPort(), |
| | | 'dsInstanceDn' : server.getRootDn(), |
| | | 'dsInstancePswd' : server.getRootPwd(), |
| | | 'dsInstanceHost' : replServer.getHostname(), |
| | | 'dsInstancePort' : replServer.getPort(), |
| | | 'dsInstanceDn' : replServer.getRootDn(), |
| | | 'dsInstancePswd' : replServer.getRootPwd(), |
| | | 'dsBaseDN' : 'dc=replicationChanges', |
| | | 'dsFilter' : 'uid=*' |
| | | } |
| | |
| | | </script> |
| | | <message> |
| | | '==> REPLICATION CHANGES %s:%s : \n%s\n' % \ |
| | | (server.getHostname(), server.getPort(), searchResult) |
| | | (replServer.getHostname(), replServer.getPort(), searchResult) |
| | | </message> |
| | | </sequence> |
| | | </paralleliterate> |
| | |
| | | listAttr.append('objectclass:organizationalperson') |
| | | listAttr.append('objectclass:inetorgperson') |
| | | listAttr.append('objectclass:person') |
| | | listAttr.append('givenname: Professor Moriarty') |
| | | listAttr.append('sn: Moriarty') |
| | | listAttr.append('cn: Professor Moriarty') |
| | | listAttr.append('l: London') |
| | | listAttr.append('givenname:Professor Moriarty') |
| | | listAttr.append('sn:Moriarty') |
| | | listAttr.append('cn:Professor Moriarty') |
| | | listAttr.append('l:London') |
| | | </script> |
| | | |
| | | <call function="'addAnEntry'"> |
| | |
| | | |
| | | <!-- Re-enable schema replication on "master" server, and |
| | | at the same time initialise the schema across the topology --> |
| | | <script> |
| | | if master.isOnlyLdapServer(): |
| | | masterReplPort = None |
| | | else: |
| | | masterReplPort = masterReplicationServer.getPort() |
| | | |
| | | if consumer.isOnlyLdapServer(): |
| | | consumerReplPort = None |
| | | else: |
| | | replicationServer = consumer.getChangelogServer() |
| | | consumerReplPort = replicationServer.getPort() |
| | | </script> |
| | | <call function="'enableReplication'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : masterHost, |
| | | 'dsInstanceAdminPort' : master.getAdminPort(), |
| | | 'dsInstanceDn' : master.getRootDn(), |
| | | 'dsInstancePswd' : master.getRootPwd(), |
| | | 'refInstanceHost' : consumer.getHostname(), |
| | | 'refInstanceAdminPort' : consumer.getAdminPort(), |
| | | 'refInstanceDn' : consumer.getRootDn(), |
| | | 'refInstancePswd' : consumer.getRootPwd(), |
| | | 'refInstanceHost' : masterHost, |
| | | 'refInstanceAdminPort' : master.getAdminPort(), |
| | | 'refInstanceDn' : master.getRootDn(), |
| | | 'refInstancePswd' : master.getRootPwd(), |
| | | 'refReplicationPort' : masterReplPort, |
| | | 'refOnlyLdapServer' : master.isOnlyLdapServer(), |
| | | 'refOnlyReplServer' : master.isOnlyReplServer(), |
| | | 'dsInstanceHost' : consumer.getHostname(), |
| | | 'dsInstanceAdminPort' : consumer.getAdminPort(), |
| | | 'dsInstanceDn' : consumer.getRootDn(), |
| | | 'dsInstancePswd' : consumer.getRootPwd(), |
| | | 'dsReplicationPort' : consumerReplPort, |
| | | 'dsOnlyLdapServer' : consumer.isOnlyLdapServer(), |
| | | 'dsOnlyReplServer' : consumer.isOnlyReplServer(), |
| | | 'replicationDnList' : ['cn=schema'] |
| | | } |
| | | } |
| | | </call> |
| | | |
| | | <!-- Add entry to "consumer" server --> |
| | |
| | | listAttr.append('objectclass:organizationalperson') |
| | | listAttr.append('objectclass:inetorgperson') |
| | | listAttr.append('objectclass:person') |
| | | listAttr.append('givenname: Professor Moriarty') |
| | | listAttr.append('sn: Moriarty') |
| | | listAttr.append('cn: Professor Moriarty') |
| | | listAttr.append('l: London') |
| | | listAttr.append('givenname:Professor Moriarty') |
| | | listAttr.append('sn:Moriarty') |
| | | listAttr.append('cn:Professor Moriarty') |
| | | listAttr.append('l:London') |
| | | </script> |
| | | |
| | | <call function="'addAnEntry'"> |
| | |
| | | logs.uri=file:// |
| | | tests.os.string=${os.name} |
| | | tests.jvm.string=${java.version}(${sun.arch.data.model} bits) |
| | | replication.split=false |
| | |
| | | </else> |
| | | </if> |
| | | </sequence> |
| | | <else> |
| | | <sequence> |
| | | <message log="1" level="'Error'"> |
| | | 'LdifDiffWithScript: command run FAILED.' |
| | | </message> |
| | | <return> -1 </return> |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | |
| | | <if expr="diffRC == 0"> |
| | |
| | | </function-arg-description> |
| | | <function-arg-property name="type" value="string"/> |
| | | </function-arg-def> |
| | | <function-arg-def name="splitReplicationServers" |
| | | type="optional" |
| | | default="False"> |
| | | <function-arg-description> |
| | | Specifies whether the replication servers should be split from the |
| | | ldap servers and be configured on separate instances. |
| | | </function-arg-description> |
| | | <function-arg-property name="type" value="boolean"/> |
| | | </function-arg-def> |
| | | </function-map-args> |
| | | |
| | | <sequence> |
| | | <script> |
| | | if not sharedDataFolder and CurrentTestPath.has_key('group'): |
| | | sharedDataFolder=CurrentTestPath['group'] |
| | | |
| | | _topologyServerList = [] |
| | | _topologyReplServerList = [] |
| | | _splitServerList = [] |
| | | </script> |
| | | |
| | | <call function="'prepareInstanceCreation'"> |
| | |
| | | { 'file' : topologyDescFile } |
| | | </call> |
| | | |
| | | <if expr="splitReplicationServers"> |
| | | <sequence> |
| | | <message> |
| | | 'Replication servers will be splitted from ldap servers.' |
| | | </message> |
| | | <iterate var="server" in="_topologyServerList" indexvar="i"> |
| | | <sequence> |
| | | <script> |
| | | _topologyReplServerList.append(server.splitReplServer()) |
| | | _splitServerList.append(server) |
| | | _splitServerList.append(_topologyReplServerList[i]) |
| | | </script> |
| | | </sequence> |
| | | </iterate> |
| | | </sequence> |
| | | <else> |
| | | <script> |
| | | _splitServerList = _topologyServerList |
| | | </script> |
| | | </else> |
| | | </if> |
| | | |
| | | <message> |
| | | 'Number of server instances required by the deployment: %s' \ |
| | | % len(_topologyServerList) |
| | | % len(_splitServerList) |
| | | </message> |
| | | |
| | | <iterate var="server" in="_topologyServerList"> |
| | | <iterate var="server" in="_splitServerList"> |
| | | <sequence> |
| | | <!-- Create the instance--> |
| | | <call function="'createInstance'"> |
| | |
| | | Encrypt communications over dsReplicationPort (secure replication) |
| | | </function-arg-description> |
| | | <function-arg-property name="type" value="boolean" /> |
| | | </function-arg-def> |
| | | |
| | | </function-arg-def> |
| | | |
| | | <function-arg-def name="dsOnlyLdapServer" |
| | | type="optional" |
| | | default="None"> |
| | | <function-arg-description> |
| | | Server only to contain replicated data (no Repl server/changelog) |
| | | </function-arg-description> |
| | | <function-arg-property name="type" value="boolean" /> |
| | | </function-arg-def> |
| | | |
| | | <function-arg-def name="dsOnlyReplServer" |
| | | type="optional" |
| | | default="None"> |
| | | <function-arg-description> |
| | | Server only to contain Repl server/changelog (no replicated data) |
| | | </function-arg-description> |
| | | <function-arg-property name="type" value="boolean" /> |
| | | </function-arg-def> |
| | | |
| | | <function-arg-def name="refInstanceHost" |
| | | type="optional" |
| | | default="STAF_REMOTE_HOSTNAME"> |
| | |
| | | Encrypt communications over refReplicationPort (secure replication) |
| | | </function-arg-description> |
| | | <function-arg-property name="type" value="boolean" /> |
| | | </function-arg-def> |
| | | </function-arg-def> |
| | | |
| | | <function-arg-def name="refOnlyLdapServer" |
| | | type="optional" |
| | | default="None"> |
| | | <function-arg-description> |
| | | Server only to contain replicated data (no Repl server/changelog) |
| | | </function-arg-description> |
| | | <function-arg-property name="type" value="boolean" /> |
| | | </function-arg-def> |
| | | |
| | | <function-arg-def name="refOnlyReplServer" |
| | | type="optional" |
| | | default="None"> |
| | | <function-arg-description> |
| | | Server only to contain Repl server/changelog (no replicated data) |
| | | </function-arg-description> |
| | | <function-arg-property name="type" value="boolean" /> |
| | | </function-arg-def> |
| | | |
| | | |
| | | <function-arg-def name="replicationDnList" type="required"> |
| | | <function-arg-description> |
| | |
| | | </function-arg-def> |
| | | |
| | | <function-arg-def name="adminUID" |
| | | type="optional" |
| | | default="AdminUID"> |
| | | type="optional" |
| | | default="AdminUID"> |
| | | <function-arg-description> |
| | | Global Administrator UID |
| | | </function-arg-description> |
| | |
| | | </function-arg-def> |
| | | |
| | | <function-arg-def name="adminPswd" |
| | | type="optional" |
| | | default="AdminPswd"> |
| | | type="optional" |
| | | default="AdminPswd"> |
| | | <function-arg-description> |
| | | Global Administrator password |
| | | </function-arg-description> |
| | |
| | | STAFCmdParamsList.append('-Q') |
| | | STAFCmdParamsList.append('-X') |
| | | |
| | | if dsInstanceHost: |
| | | STAFCmdParamsList.append('--host1 %s' % dsInstanceHost) |
| | | |
| | | if dsInstanceAdminPort: |
| | | STAFCmdParamsList.append('--port1 %s' % dsInstanceAdminPort) |
| | | |
| | | if dsInstanceDn: |
| | | STAFCmdParamsList.append('--bindDN1 "%s"' % dsInstanceDn) |
| | | |
| | | if dsInstancePswd: |
| | | STAFCmdParamsList.append('--bindPassword1 "%s"' % dsInstancePswd) |
| | | |
| | | if dsReplicationPort: |
| | | STAFCmdParamsList.append('--replicationPort1 %s' % dsReplicationPort) |
| | | |
| | | if dsSecureReplication: |
| | | STAFCmdParamsList.append('--secureReplication1') |
| | | |
| | | if refInstanceHost: |
| | | STAFCmdParamsList.append('--host2 %s' % refInstanceHost) |
| | | STAFCmdParamsList.append('--host1 %s' % refInstanceHost) |
| | | |
| | | if refInstanceAdminPort: |
| | | STAFCmdParamsList.append('--port2 %s' % refInstanceAdminPort) |
| | | STAFCmdParamsList.append('--port1 %s' % refInstanceAdminPort) |
| | | |
| | | if refInstanceDn: |
| | | STAFCmdParamsList.append('--bindDN2 "%s"' % refInstanceDn) |
| | | STAFCmdParamsList.append('--bindDN1 "%s"' % refInstanceDn) |
| | | |
| | | if refInstancePswd: |
| | | STAFCmdParamsList.append('--bindPassword2 "%s"' % refInstancePswd) |
| | | STAFCmdParamsList.append('--bindPassword1 "%s"' % refInstancePswd) |
| | | |
| | | if refReplicationPort: |
| | | STAFCmdParamsList.append('--replicationPort2 %s' % refReplicationPort) |
| | | STAFCmdParamsList.append('--replicationPort1 %s' % refReplicationPort) |
| | | |
| | | if refSecureReplication: |
| | | STAFCmdParamsList.append('--secureReplication2') |
| | | STAFCmdParamsList.append('--secureReplication1') |
| | | |
| | | if refOnlyLdapServer: |
| | | STAFCmdParamsList.append('--noReplicationServer1') |
| | | |
| | | if refOnlyReplServer: |
| | | STAFCmdParamsList.append('--onlyReplicationServer1') |
| | | |
| | | if dsInstanceHost: |
| | | STAFCmdParamsList.append('--host2 %s' % dsInstanceHost) |
| | | |
| | | if dsInstanceAdminPort: |
| | | STAFCmdParamsList.append('--port2 %s' % dsInstanceAdminPort) |
| | | |
| | | if dsInstanceDn: |
| | | STAFCmdParamsList.append('--bindDN2 "%s"' % dsInstanceDn) |
| | | |
| | | if dsInstancePswd: |
| | | STAFCmdParamsList.append('--bindPassword2 "%s"' % dsInstancePswd) |
| | | |
| | | if dsReplicationPort: |
| | | STAFCmdParamsList.append('--replicationPort2 %s' % dsReplicationPort) |
| | | |
| | | if dsSecureReplication: |
| | | STAFCmdParamsList.append('--secureReplication2') |
| | | |
| | | if dsOnlyLdapServer: |
| | | STAFCmdParamsList.append('--noReplicationServer2') |
| | | |
| | | if dsOnlyReplServer: |
| | | STAFCmdParamsList.append('--onlyReplicationServer2') |
| | | |
| | | if replicationDnList: |
| | | for dn in replicationDnList: |
| | |
| | | <else> |
| | | <!-- MULTIPLE instance deployment: parameters read from |
| | | topologyDescFile --> |
| | | <iterate var="server" in="_topologyServerList"> |
| | | <iterate var="server" in="_splitServerList"> |
| | | <call function="'removeInstance'"> |
| | | { 'dsHost' : server.getHostname(), |
| | | 'dsDir' : server.getDir() |
| | |
| | | self.synchronizedSuffixList = []
|
| | |
|
| | | def __repr__(self):
|
| | | return "Server: hostname=%s, directory=%s" % (self.hostanme, self.dir)
|
| | | return "Server: hostname=%s, directory=%s" % (self.hostname, self.dir)
|
| | |
|
| | | def addChangelogServer(self, changelogServer):
|
| | | self.changelogServer = changelogServer
|
| | |
| | | return self.synchronizedSuffixList
|
| | |
|
| | | def requiresSynchronization(self):
|
| | | return (self.changelogServer is not None) or (len(self.synchronizedSuffixList) > 0)
|
| | | return (self.changelogServer is not None) or (len(self.synchronizedSuffixList) > 0) |
| | | |
| | | def isOnlyLdapServer(self): |
| | | return (self.changelogServer is None) and (len(self.synchronizedSuffixList) > 0) |
| | | |
| | | def isOnlyReplServer(self): |
| | | return (self.changelogServer is not None) and (len(self.synchronizedSuffixList) == 0) |
| | | |
| | | def splitReplServer(self): |
| | | new_hostname = self.hostname
|
| | | new_dir = '%s-repl-server' % self.dir
|
| | | new_port = str( int(self.port) + 1 )
|
| | | new_adminPort = str( int(self.adminPort) + 1 )
|
| | | new_sslPort = str( int(self.sslPort) + 1 )
|
| | | new_jmxPort = str( int(self.jmxPort) + 1 )
|
| | | new_rootDn = self.rootDn
|
| | | new_rootPwd = self.rootPwd
|
| | | new_baseDn = self.baseDn
|
| | | new_changelogServer = self.changelogServer |
| | | self.changelogServer = None |
| | | |
| | | replServer = Server(new_hostname, new_dir, new_port, new_adminPort, new_sslPort, |
| | | new_jmxPort, new_rootDn, new_rootPwd, new_baseDn) |
| | | replServer.addChangelogServer(new_changelogServer) |
| | | |
| | | return replServer
|
| | |
|
| | |
|
| | |
|
| | |
| | | DIRECTORY_INSTANCE_SFX = 'dc=com' |
| | | DIRECTORY_INSTANCE_BE = 'userRoot' |
| | | REPLICATION_CONFIG_DIR = '${tests.run.dir}/${tests.run.time}/config' |
| | | REPLICATION_SPLIT_SERVERS = '${replication.split}' |
| | | JAVA_HOME = '${remote.javahome}' |
| | | LOCAL_JAVA_HOME = '${local.javahome}' |
| | | LOGS_ROOT = '${tests.run.dir}/${tests.run.time}' |