| | |
| | | <if expr="searchRC == 0"> |
| | | <sequence> |
| | | <message> |
| | | 'This is the ECL entry as read from server %s:%s: \n%s' %\ |
| | | 'This is the ECL entry as read from server %s:%s: \n%s' % \ |
| | | (replServer.getHostname(), replServer.getPort(), |
| | | searchResult) |
| | | </message> |
| | |
| | | 'Parsed changelog entry: \n%s' % eclEntry |
| | | </message> |
| | | <message> |
| | | 'Index to use for the next ECL search: %s' % \ |
| | | nextIndex |
| | | 'Index to use for the next ECL search: %s' % nextIndex |
| | | </message> |
| | | |
| | | <if expr="addedEntry and eclEntry"> |
| | |
| | | 'Number of added entries %s does not match number of ECL \ |
| | | entries %s' % (len(modEntries), len(eclEntries)) |
| | | </message> |
| | | <call function="'testFailed'"/> |
| | | <call function="'testFailed'"/> |
| | | </sequence> |
| | | </if> |
| | | |
| | | <iterate var="eclEntry" |
| | | in="eclEntries" |
| | | indexvar="i"> |
| | | <sequence> |
| | | |
| | | <script> |
| | | if ecl_mode == 'opends': |
| | | nextIndex = eclEntry['changelogcookie'][0] |
| | | else: |
| | | nextChgNumber = int(eclEntry['changenumber'][0]) + 1 |
| | | nextIndex = str(nextChgNumber) |
| | | |
| | | modEntry = modEntries[i] |
| | | myTargetDN = modEntry['dn'][0] |
| | | myChangeType = 'modify' |
| | | myChangeTime = modEntry['modifytimestamp'][0] |
| | | myTargetEntryUUID = modEntry['entryuuid'][0] |
| | | # myReplicationCSN = ----> grab from where??? |
| | | # myReplicatIdentifier = ----> grab from ldap server |
| | | myModifiersName = modEntry['modifiersname'][0] |
| | | myModifyTimestamp = modEntry['modifytimestamp'][0] |
| | | myDescription = modEntry['description'][0] |
| | | myChanges = [] |
| | | myChanges.append(['replace', 'description', myDescription]) |
| | | myChanges.append(['replace', 'modifiersname', myModifiersName]) |
| | | myChanges.append(['replace', 'modifytimestamp', myModifyTimestamp]) |
| | | |
| | | if ecl_mode != 'opends': |
| | | myIntChangeNumber = int(searchIndex) + i |
| | | myChangeNumber = str(myIntChangeNumber) |
| | | else: |
| | | myChangeNumber = None |
| | | </script> |
| | | <message> |
| | | 'Parsed changelog entry: \n%s' % eclEntry |
| | | </message> |
| | | <message> |
| | | 'Index to use for the next ECL search: %s' % nextIndex |
| | | </message> |
| | | |
| | | <if expr="modEntry and eclEntry"> |
| | | <call function="'checkChangelogEntry'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'changelogEntry' : eclEntry, |
| | | 'targetDN' : myTargetDN, |
| | | 'changeNumber' : myChangeNumber, |
| | | 'changeType' : myChangeType, |
| | | 'changeTime' : myChangeTime, |
| | | 'targetEntryUUID' : myTargetEntryUUID, |
| | | 'changes' : myChanges |
| | | } |
| | | </call> |
| | | <else> |
| | | <else> |
| | | <sequence> |
| | | <iterate var="eclEntry" |
| | | in="eclEntries" |
| | | indexvar="i"> |
| | | <sequence> |
| | | <message log="1" level="'Error'"> |
| | | 'Unable to check external changelog entry \ |
| | | (failed to read LDAP and/or changelog entry)' |
| | | </message> |
| | | <call function="'testFailed'"/> |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | |
| | | <script> |
| | | if ecl_mode == 'opends': |
| | | nextIndex = eclEntry['changelogcookie'][0] |
| | | else: |
| | | nextChgNumber = int(eclEntry['changenumber'][0]) + 1 |
| | | nextIndex = str(nextChgNumber) |
| | | |
| | | modEntry = modEntries[i] |
| | | myTargetDN = modEntry['dn'][0] |
| | | myChangeType = 'modify' |
| | | myChangeTime = modEntry['modifytimestamp'][0] |
| | | myTargetEntryUUID = modEntry['entryuuid'][0] |
| | | # myReplicationCSN = ----> grab from where??? |
| | | # myReplicatIdentifier = ----> grab from ldap server |
| | | myModifiersName = modEntry['modifiersname'][0] |
| | | myModifyTimestamp = modEntry['modifytimestamp'][0] |
| | | myDescription = modEntry['description'][0] |
| | | myChanges = [] |
| | | myChanges.append(['replace', 'description', myDescription]) |
| | | myChanges.append(['replace', 'modifiersname', myModifiersName]) |
| | | myChanges.append(['replace', 'modifytimestamp', myModifyTimestamp]) |
| | | |
| | | </sequence> |
| | | </iterate> |
| | | |
| | | if ecl_mode != 'opends': |
| | | myIntChangeNumber = int(searchIndex) + i |
| | | myChangeNumber = str(myIntChangeNumber) |
| | | else: |
| | | myChangeNumber = None |
| | | </script> |
| | | <message> |
| | | 'Parsed changelog entry: \n%s' % eclEntry |
| | | </message> |
| | | <message> |
| | | 'Index to use for the next ECL search: %s' % nextIndex |
| | | </message> |
| | | |
| | | <if expr="modEntry and eclEntry"> |
| | | <call function="'checkChangelogEntry'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'changelogEntry' : eclEntry, |
| | | 'targetDN' : myTargetDN, |
| | | 'changeNumber' : myChangeNumber, |
| | | 'changeType' : myChangeType, |
| | | 'changeTime' : myChangeTime, |
| | | 'targetEntryUUID' : myTargetEntryUUID, |
| | | 'changes' : myChanges |
| | | } |
| | | </call> |
| | | <else> |
| | | <sequence> |
| | | <message log="1" level="'Error'"> |
| | | 'Unable to check external changelog entry \ |
| | | (failed to read LDAP and/or changelog entry)' |
| | | </message> |
| | | <call function="'testFailed'"/> |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | |
| | | </sequence> |
| | | </iterate> |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | </sequence> |
| | | <else> |
| | | <message log="1" level="'Error'"> |
| | |
| | | 'Number of added entries %s does not match number of ECL \ |
| | | entries %s' % (len(modEntries), len(eclEntries)) |
| | | </message> |
| | | <call function="'testFailed'"/> |
| | | <call function="'testFailed'"/> |
| | | </sequence> |
| | | </if> |
| | | |
| | | <iterate var="eclEntry" |
| | | in="eclEntries" |
| | | indexvar="i"> |
| | | <sequence> |
| | | |
| | | <script> |
| | | if ecl_mode == 'opends': |
| | | nextIndex = eclEntry['changelogcookie'][0] |
| | | else: |
| | | nextChgNumber = int(eclEntry['changenumber'][0]) + 1 |
| | | nextIndex = str(nextChgNumber) |
| | | |
| | | modEntry = modEntries[i] |
| | | myTargetDN = modEntry['dn'][0] |
| | | myChangeType = 'modify' |
| | | myChangeTime = modEntry['modifytimestamp'][0] |
| | | myTargetEntryUUID = modEntry['entryuuid'][0] |
| | | # myReplicationCSN = ----> grab from where??? |
| | | # myReplicatIdentifier = ----> grab from ldap server |
| | | myModifiersName = modEntry['modifiersname'][0] |
| | | myModifyTimestamp = modEntry['modifytimestamp'][0] |
| | | myDescription = modEntry['description'][0] |
| | | myChanges = [] |
| | | myChanges.append(['replace', 'description', myDescription]) |
| | | myChanges.append(['replace', 'modifiersname', myModifiersName]) |
| | | myChanges.append(['replace', 'modifytimestamp', myModifyTimestamp]) |
| | | |
| | | if ecl_mode != 'opends': |
| | | myIntChangeNumber = int(searchIndex) + i |
| | | myChangeNumber = str(myIntChangeNumber) |
| | | else: |
| | | myChangeNumber = None |
| | | </script> |
| | | <message> |
| | | 'Parsed changelog entry: \n%s' % eclEntry |
| | | </message> |
| | | <message> |
| | | 'Index to use for the next ECL search: %s' % nextIndex |
| | | </message> |
| | | |
| | | <if expr="modEntry and eclEntry"> |
| | | <call function="'checkChangelogEntry'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'changelogEntry' : eclEntry, |
| | | 'targetDN' : myTargetDN, |
| | | 'changeNumber' : myChangeNumber, |
| | | 'changeType' : myChangeType, |
| | | 'changeTime' : myChangeTime, |
| | | 'targetEntryUUID' : myTargetEntryUUID, |
| | | 'changes' : myChanges |
| | | } |
| | | </call> |
| | | <else> |
| | | <else> |
| | | <sequence> |
| | | <iterate var="eclEntry" |
| | | in="eclEntries" |
| | | indexvar="i"> |
| | | <sequence> |
| | | <message log="1" level="'Error'"> |
| | | 'Unable to check external changelog entry \ |
| | | (failed to read LDAP and/or changelog entry)' |
| | | </message> |
| | | <call function="'testFailed'"/> |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | |
| | | <script> |
| | | if ecl_mode == 'opends': |
| | | nextIndex = eclEntry['changelogcookie'][0] |
| | | else: |
| | | nextChgNumber = int(eclEntry['changenumber'][0]) + 1 |
| | | nextIndex = str(nextChgNumber) |
| | | |
| | | modEntry = modEntries[i] |
| | | myTargetDN = modEntry['dn'][0] |
| | | myChangeType = 'modify' |
| | | myChangeTime = modEntry['modifytimestamp'][0] |
| | | myTargetEntryUUID = modEntry['entryuuid'][0] |
| | | # myReplicationCSN = ----> grab from where??? |
| | | # myReplicatIdentifier = ----> grab from ldap server |
| | | myModifiersName = modEntry['modifiersname'][0] |
| | | myModifyTimestamp = modEntry['modifytimestamp'][0] |
| | | myDescription = modEntry['description'][0] |
| | | myChanges = [] |
| | | myChanges.append(['replace', 'description', myDescription]) |
| | | myChanges.append(['replace', 'modifiersname', myModifiersName]) |
| | | myChanges.append(['replace', 'modifytimestamp', myModifyTimestamp]) |
| | | |
| | | </sequence> |
| | | </iterate> |
| | | |
| | | if ecl_mode != 'opends': |
| | | myIntChangeNumber = int(searchIndex) + i |
| | | myChangeNumber = str(myIntChangeNumber) |
| | | else: |
| | | myChangeNumber = None |
| | | </script> |
| | | <message> |
| | | 'Parsed changelog entry: \n%s' % eclEntry |
| | | </message> |
| | | <message> |
| | | 'Index to use for the next ECL search: %s' % nextIndex |
| | | </message> |
| | | |
| | | <if expr="modEntry and eclEntry"> |
| | | <call function="'checkChangelogEntry'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'changelogEntry' : eclEntry, |
| | | 'targetDN' : myTargetDN, |
| | | 'changeNumber' : myChangeNumber, |
| | | 'changeType' : myChangeType, |
| | | 'changeTime' : myChangeTime, |
| | | 'targetEntryUUID' : myTargetEntryUUID, |
| | | 'changes' : myChanges |
| | | } |
| | | </call> |
| | | <else> |
| | | <sequence> |
| | | <message log="1" level="'Error'"> |
| | | 'Unable to check external changelog entry \ |
| | | (failed to read LDAP and/or changelog entry)' |
| | | </message> |
| | | <call function="'testFailed'"/> |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | |
| | | </sequence> |
| | | </iterate> |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | </sequence> |
| | | <else> |
| | | <message log="1" level="'Error'"> |
| | |
| | | </message> |
| | | <call function="'testFailed'"/> |
| | | </sequence> |
| | | </if> |
| | | |
| | | <iterate var="eclEntry" |
| | | in="eclEntries" |
| | | indexvar="i"> |
| | | <sequence> |
| | | |
| | | <script> |
| | | if ecl_mode == 'opends': |
| | | nextIndex = eclEntry['changelogcookie'][0] |
| | | else: |
| | | nextChgNumber = int(eclEntry['changenumber'][0]) + 1 |
| | | nextIndex = str(nextChgNumber) |
| | | |
| | | addedEntry = addedEntries[i] |
| | | myTargetDN = addedEntry['dn'][0] |
| | | myChangeType = 'add' |
| | | myChangeTime = addedEntry['createtimestamp'][0] |
| | | myTargetEntryUUID = addedEntry['entryuuid'][0] |
| | | # myReplicationCSN = ----> grab from where??? |
| | | # myReplicatIdentifier = ----> grab from ldap server |
| | | myChanges = {} |
| | | |
| | | for attr in addedEntry.keys(): |
| | | if (attr != 'dn') and (attr != 'changelogcookie') : |
| | | myChanges[attr] = addedEntry[attr] |
| | | |
| | | if ecl_mode != 'opends': |
| | | myIntChangeNumber = int(searchIndex) + i |
| | | myChangeNumber = str(myIntChangeNumber) |
| | | else: |
| | | myChangeNumber = None |
| | | </script> |
| | | <message> |
| | | 'Parsed changelog entry: \n%s' % eclEntry |
| | | </message> |
| | | <message> |
| | | 'Index to use for the next ECL search: %s' % nextIndex |
| | | </message> |
| | | |
| | | <if expr="addedEntry and eclEntry"> |
| | | <call function="'checkChangelogEntry'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'changelogEntry' : eclEntry, |
| | | 'targetDN' : myTargetDN, |
| | | 'changeNumber' : myChangeNumber, |
| | | 'changeType' : myChangeType, |
| | | 'changeTime' : myChangeTime, |
| | | 'targetEntryUUID' : myTargetEntryUUID, |
| | | 'changes' : myChanges |
| | | } |
| | | </call> |
| | | <else> |
| | | <else> |
| | | <sequence> |
| | | <iterate var="eclEntry" |
| | | in="eclEntries" |
| | | indexvar="i"> |
| | | <sequence> |
| | | <message log="1" level="'Error'"> |
| | | 'Unable to check external changelog entry \ |
| | | (failed to read LDAP and/or changelog entry)' |
| | | |
| | | <script> |
| | | if ecl_mode == 'opends': |
| | | nextIndex = eclEntry['changelogcookie'][0] |
| | | else: |
| | | nextChgNumber = int(eclEntry['changenumber'][0]) + 1 |
| | | nextIndex = str(nextChgNumber) |
| | | |
| | | addedEntry = addedEntries[i] |
| | | myTargetDN = addedEntry['dn'][0] |
| | | myChangeType = 'add' |
| | | myChangeTime = addedEntry['createtimestamp'][0] |
| | | myTargetEntryUUID = addedEntry['entryuuid'][0] |
| | | # myReplicationCSN = ----> grab from where??? |
| | | # myReplicatIdentifier = ----> grab from ldap server |
| | | myChanges = {} |
| | | |
| | | for attr in addedEntry.keys(): |
| | | if (attr != 'dn') and (attr != 'changelogcookie') : |
| | | myChanges[attr] = addedEntry[attr] |
| | | |
| | | if ecl_mode != 'opends': |
| | | myIntChangeNumber = int(searchIndex) + i |
| | | myChangeNumber = str(myIntChangeNumber) |
| | | else: |
| | | myChangeNumber = None |
| | | </script> |
| | | <message> |
| | | 'Parsed changelog entry: \n%s' % eclEntry |
| | | </message> |
| | | <call function="'testFailed'"/> |
| | | <message> |
| | | 'Index to use for the next ECL search: %s' % nextIndex |
| | | </message> |
| | | |
| | | <if expr="addedEntry and eclEntry"> |
| | | <call function="'checkChangelogEntry'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'changelogEntry' : eclEntry, |
| | | 'targetDN' : myTargetDN, |
| | | 'changeNumber' : myChangeNumber, |
| | | 'changeType' : myChangeType, |
| | | 'changeTime' : myChangeTime, |
| | | 'targetEntryUUID' : myTargetEntryUUID, |
| | | 'changes' : myChanges |
| | | } |
| | | </call> |
| | | <else> |
| | | <sequence> |
| | | <message log="1" level="'Error'"> |
| | | 'Unable to check external changelog entry \ |
| | | (failed to read LDAP and/or changelog entry)' |
| | | </message> |
| | | <call function="'testFailed'"/> |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | |
| | | </sequence> |
| | | </iterate> |
| | | |
| | | </iterate> |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | </sequence> |
| | | <else> |
| | | <message log="1" level="'Error'"> |
| | |
| | | indexvar="indx"> |
| | | <sequence> |
| | | <script> |
| | | myKnownIssue = None |
| | | |
| | | replServer = server |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | </script> |
| | |
| | | 'dsBaseDN' : 'cn=changelog', |
| | | 'dsFilter' : '(objectclass=*)', |
| | | 'changeNumberFilter' : chgNumberFilter, |
| | | 'changelogCookie' : lastCookie, |
| | | 'knownIssue' : myKnownIssue |
| | | 'changelogCookie' : lastCookie |
| | | } |
| | | </call> |
| | | <script> |
| | |
| | | 'Number of added entries %s does not match number of ECL \ |
| | | entries %s' % (len(addedEntries), len(eclEntries)) |
| | | </message> |
| | | <call function="'testFailed'"/> |
| | | <call function="'testFailed'"/> |
| | | </sequence> |
| | | </if> |
| | | |
| | | <iterate var="eclEntry" |
| | | in="eclEntries" |
| | | indexvar="i"> |
| | | <sequence> |
| | | |
| | | <script> |
| | | if ecl_mode == 'opends': |
| | | nextIndex = eclEntry['changelogcookie'][0] |
| | | else: |
| | | nextChgNumber = int(eclEntry['changenumber'][0]) + 1 |
| | | nextIndex = str(nextChgNumber) |
| | | |
| | | addedEntry = addedEntries[i] |
| | | myTargetDN = addedEntry['dn'][0] |
| | | myChangeType = 'add' |
| | | myChangeTime = addedEntry['createtimestamp'][0] |
| | | myTargetEntryUUID = addedEntry['entryuuid'][0] |
| | | # myReplicationCSN = ----> grab from where??? |
| | | # myReplicatIdentifier = ----> grab from ldap server |
| | | myChanges = {} |
| | | |
| | | for attr in addedEntry.keys(): |
| | | if (attr != 'dn') and (attr != 'changelogcookie') : |
| | | myChanges[attr] = addedEntry[attr] |
| | | |
| | | if ecl_mode != 'opends': |
| | | myIntChangeNumber = int(searchIndex) + i |
| | | myChangeNumber = str(myIntChangeNumber) |
| | | else: |
| | | myChangeNumber = None |
| | | </script> |
| | | <message> |
| | | 'Parsed changelog entry: \n%s' % eclEntry |
| | | </message> |
| | | <message> |
| | | 'Index to use for the next ECL search: %s' % nextIndex |
| | | </message> |
| | | |
| | | <if expr="addedEntry and eclEntry"> |
| | | <call function="'checkChangelogEntry'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'changelogEntry' : eclEntry, |
| | | 'targetDN' : myTargetDN, |
| | | 'changeNumber' : myChangeNumber, |
| | | 'changeType' : myChangeType, |
| | | 'changeTime' : myChangeTime, |
| | | 'targetEntryUUID' : myTargetEntryUUID, |
| | | 'changes' : myChanges |
| | | } |
| | | </call> |
| | | <else> |
| | | <else> |
| | | <sequence> |
| | | <iterate var="eclEntry" |
| | | in="eclEntries" |
| | | indexvar="i"> |
| | | <sequence> |
| | | <message log="1" level="'Error'"> |
| | | 'Unable to check external changelog entry \ |
| | | (failed to read LDAP and/or changelog entry)' |
| | | |
| | | <script> |
| | | if ecl_mode == 'opends': |
| | | nextIndex = eclEntry['changelogcookie'][0] |
| | | else: |
| | | nextChgNumber = int(eclEntry['changenumber'][0]) + 1 |
| | | nextIndex = str(nextChgNumber) |
| | | |
| | | addedEntry = addedEntries[i] |
| | | myTargetDN = addedEntry['dn'][0] |
| | | myChangeType = 'add' |
| | | myChangeTime = addedEntry['createtimestamp'][0] |
| | | myTargetEntryUUID = addedEntry['entryuuid'][0] |
| | | # myReplicationCSN = ----> grab from where??? |
| | | # myReplicatIdentifier = ----> grab from ldap server |
| | | myChanges = {} |
| | | |
| | | for attr in addedEntry.keys(): |
| | | if (attr != 'dn') and (attr != 'changelogcookie') : |
| | | myChanges[attr] = addedEntry[attr] |
| | | |
| | | if ecl_mode != 'opends': |
| | | myIntChangeNumber = int(searchIndex) + i |
| | | myChangeNumber = str(myIntChangeNumber) |
| | | else: |
| | | myChangeNumber = None |
| | | </script> |
| | | <message> |
| | | 'Parsed changelog entry: \n%s' % eclEntry |
| | | </message> |
| | | <call function="'testFailed'"/> |
| | | <message> |
| | | 'Index to use for the next ECL search: %s' % nextIndex |
| | | </message> |
| | | |
| | | <if expr="addedEntry and eclEntry"> |
| | | <call function="'checkChangelogEntry'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'changelogEntry' : eclEntry, |
| | | 'targetDN' : myTargetDN, |
| | | 'changeNumber' : myChangeNumber, |
| | | 'changeType' : myChangeType, |
| | | 'changeTime' : myChangeTime, |
| | | 'targetEntryUUID' : myTargetEntryUUID, |
| | | 'changes' : myChanges |
| | | } |
| | | </call> |
| | | <else> |
| | | <sequence> |
| | | <message log="1" level="'Error'"> |
| | | 'Unable to check external changelog entry \ |
| | | (failed to read LDAP and/or changelog entry)' |
| | | </message> |
| | | <call function="'testFailed'"/> |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | |
| | | </sequence> |
| | | </iterate> |
| | | |
| | | </iterate> |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | </sequence> |
| | | <else> |
| | | <message log="1" level="'Error'"> |
| | |
| | | indexvar="indx"> |
| | | <sequence> |
| | | <script> |
| | | myKnownIssue = None |
| | | |
| | | replServer = server |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | </script> |
| | |
| | | 'dsBaseDN' : 'cn=changelog', |
| | | 'dsFilter' : '(objectclass=*)', |
| | | 'changeNumberFilter' : chgNumberFilter, |
| | | 'changelogCookie' : lastCookie, |
| | | 'knownIssue' : myKnownIssue |
| | | 'changelogCookie' : lastCookie |
| | | } |
| | | </call> |
| | | <script> |
| | |
| | | 'Number of added entries %s does not match number of ECL \ |
| | | entries %s' % (len(modEntries), len(eclEntries)) |
| | | </message> |
| | | <call function="'testFailed'"/> |
| | | <call function="'testFailed'"/> |
| | | </sequence> |
| | | </if> |
| | | |
| | | <iterate var="eclEntry" |
| | | in="eclEntries" |
| | | indexvar="i"> |
| | | <sequence> |
| | | |
| | | <script> |
| | | if ecl_mode == 'opends': |
| | | nextIndex = eclEntry['changelogcookie'][0] |
| | | else: |
| | | nextChgNumber = int(eclEntry['changenumber'][0]) + 1 |
| | | nextIndex = str(nextChgNumber) |
| | | |
| | | modEntry = modEntries[i] |
| | | myTargetDN = modEntry['dn'][0] |
| | | myChangeType = 'modify' |
| | | myChangeTime = modEntry['modifytimestamp'][0] |
| | | myTargetEntryUUID = modEntry['entryuuid'][0] |
| | | # myReplicationCSN = ----> grab from where??? |
| | | # myReplicatIdentifier = ----> grab from ldap server |
| | | myModifiersName = modEntry['modifiersname'][0] |
| | | myModifyTimestamp = modEntry['modifytimestamp'][0] |
| | | myTelephonenumber = myTelephonenumbers[i] |
| | | myChanges = [] |
| | | myChanges.append(['add', 'telephonenumber', myTelephonenumber]) |
| | | myChanges.append(['replace', 'modifiersname', myModifiersName]) |
| | | myChanges.append(['replace', 'modifytimestamp', myModifyTimestamp]) |
| | | |
| | | if ecl_mode != 'opends': |
| | | myIntChangeNumber = int(searchIndex) + i |
| | | myChangeNumber = str(myIntChangeNumber) |
| | | else: |
| | | myChangeNumber = None |
| | | </script> |
| | | <message> |
| | | 'Parsed changelog entry: \n%s' % eclEntry |
| | | </message> |
| | | <message> |
| | | 'Index to use for the next ECL search: %s' % nextIndex |
| | | </message> |
| | | |
| | | <if expr="modEntry and eclEntry"> |
| | | <call function="'checkChangelogEntry'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'changelogEntry' : eclEntry, |
| | | 'targetDN' : myTargetDN, |
| | | 'changeNumber' : myChangeNumber, |
| | | 'changeType' : myChangeType, |
| | | 'changeTime' : myChangeTime, |
| | | 'targetEntryUUID' : myTargetEntryUUID, |
| | | 'changes' : myChanges |
| | | } |
| | | </call> |
| | | <else> |
| | | <else> |
| | | <sequence> |
| | | <iterate var="eclEntry" |
| | | in="eclEntries" |
| | | indexvar="i"> |
| | | <sequence> |
| | | <message log="1" level="'Error'"> |
| | | 'Unable to check external changelog entry \ |
| | | (failed to read LDAP and/or changelog entry)' |
| | | </message> |
| | | <call function="'testFailed'"/> |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | |
| | | <script> |
| | | if ecl_mode == 'opends': |
| | | nextIndex = eclEntry['changelogcookie'][0] |
| | | else: |
| | | nextChgNumber = int(eclEntry['changenumber'][0]) + 1 |
| | | nextIndex = str(nextChgNumber) |
| | | |
| | | modEntry = modEntries[i] |
| | | myTargetDN = modEntry['dn'][0] |
| | | myChangeType = 'modify' |
| | | myChangeTime = modEntry['modifytimestamp'][0] |
| | | myTargetEntryUUID = modEntry['entryuuid'][0] |
| | | # myReplicationCSN = ----> grab from where??? |
| | | # myReplicatIdentifier = ----> grab from ldap server |
| | | myModifiersName = modEntry['modifiersname'][0] |
| | | myModifyTimestamp = modEntry['modifytimestamp'][0] |
| | | myTelephonenumber = myTelephonenumbers[i] |
| | | myChanges = [] |
| | | myChanges.append(['add', 'telephonenumber', myTelephonenumber]) |
| | | myChanges.append(['replace', 'modifiersname', myModifiersName]) |
| | | myChanges.append(['replace', 'modifytimestamp', myModifyTimestamp]) |
| | | |
| | | </sequence> |
| | | </iterate> |
| | | |
| | | if ecl_mode != 'opends': |
| | | myIntChangeNumber = int(searchIndex) + i |
| | | myChangeNumber = str(myIntChangeNumber) |
| | | else: |
| | | myChangeNumber = None |
| | | </script> |
| | | <message> |
| | | 'Parsed changelog entry: \n%s' % eclEntry |
| | | </message> |
| | | <message> |
| | | 'Index to use for the next ECL search: %s' % nextIndex |
| | | </message> |
| | | |
| | | <if expr="modEntry and eclEntry"> |
| | | <call function="'checkChangelogEntry'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'changelogEntry' : eclEntry, |
| | | 'targetDN' : myTargetDN, |
| | | 'changeNumber' : myChangeNumber, |
| | | 'changeType' : myChangeType, |
| | | 'changeTime' : myChangeTime, |
| | | 'targetEntryUUID' : myTargetEntryUUID, |
| | | 'changes' : myChanges |
| | | } |
| | | </call> |
| | | <else> |
| | | <sequence> |
| | | <message log="1" level="'Error'"> |
| | | 'Unable to check external changelog entry \ |
| | | (failed to read LDAP and/or changelog entry)' |
| | | </message> |
| | | <call function="'testFailed'"/> |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | |
| | | </sequence> |
| | | </iterate> |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | </sequence> |
| | | <else> |
| | | <message log="1" level="'Error'"> |
| | |
| | | indexvar="indx"> |
| | | <sequence> |
| | | <script> |
| | | myKnownIssue = None |
| | | |
| | | replServer = server |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | </script> |
| | |
| | | 'dsBaseDN' : 'cn=changelog', |
| | | 'dsFilter' : '(objectclass=*)', |
| | | 'changeNumberFilter' : chgNumberFilter, |
| | | 'changelogCookie' : lastCookie, |
| | | 'knownIssue' : myKnownIssue |
| | | 'changelogCookie' : lastCookie |
| | | } |
| | | </call> |
| | | <script> |
| | |
| | | indexvar="indx"> |
| | | <sequence> |
| | | <script> |
| | | myKnownIssue = None |
| | | |
| | | replServer = server |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | </script> |
| | |
| | | 'dsBaseDN' : 'cn=changelog', |
| | | 'dsFilter' : '(objectclass=*)', |
| | | 'changeNumberFilter' : chgNumberFilter, |
| | | 'changelogCookie' : lastCookie, |
| | | 'knownIssue' : myKnownIssue |
| | | 'changelogCookie' : lastCookie |
| | | } |
| | | </call> |
| | | <script> |
| | |
| | | 'dsBaseDN' : 'cn=changelog', |
| | | 'dsFilter' : '(objectclass=*)', |
| | | 'changeNumberFilter' : chgNumberFilter, |
| | | 'changelogCookie' : lastCookie, |
| | | 'knownIssue' : myKnownIssue |
| | | 'changelogCookie' : lastCookie |
| | | } |
| | | </call> |
| | | <script> |
| | |
| | | </message> |
| | | <call function="'searchString'"> |
| | | { 'expectedString' : 'is missing the replicated domain', |
| | | 'returnString' : searchResult, |
| | | 'knownIssue' : myKnownIssue |
| | | 'returnString' : searchResult |
| | | } |
| | | </call> |
| | | <script> |
| | |
| | | 'dsBaseDN' : 'cn=changelog', |
| | | 'dsFilter' : '(objectclass=*)', |
| | | 'changeNumberFilter' : chgNumberFilter, |
| | | 'changelogCookie' : lastCookie, |
| | | 'knownIssue' : myKnownIssue |
| | | 'changelogCookie' : lastCookie |
| | | } |
| | | </call> |
| | | <script> |
| | |
| | | 'dsBaseDN' : eclSearchBaseDn, |
| | | 'dsFilter' : eclSearchFilter, |
| | | 'changeNumberFilter' : chgNumberFilter, |
| | | 'changelogCookie' : lastCookie, |
| | | 'knownIssue' : myKnownIssue |
| | | 'changelogCookie' : lastCookie |
| | | } |
| | | </call> |
| | | <script> |
| | |
| | | 'dsBaseDN' : eclSearchBaseDn, |
| | | 'dsFilter' : eclSearchFilter, |
| | | 'changeNumberFilter' : chgNumberFilter, |
| | | 'changelogCookie' : lastCookie, |
| | | 'knownIssue' : myKnownIssue |
| | | 'changelogCookie' : lastCookie |
| | | } |
| | | </call> |
| | | <script> |
| | |
| | | 'dsBaseDN' : 'cn=changelog', |
| | | 'dsFilter' : '(objectclass=*)', |
| | | 'changeNumberFilter' : chgNumberFilter, |
| | | 'changelogCookie' : lastCookie, |
| | | 'knownIssue' : myKnownIssue |
| | | 'changelogCookie' : lastCookie |
| | | } |
| | | </call> |
| | | <script> |
| | |
| | | 'changeType' : myChangeType, |
| | | 'changeTime' : myChangeTime, |
| | | 'targetEntryUUID' : myTargetEntryUUID, |
| | | 'changes' : myChanges, |
| | | 'knownIssue' : myKnownIssue |
| | | 'changes' : myChanges |
| | | } |
| | | </call> |
| | | <else> |
| | |
| | | indexvar="indx"> |
| | | <sequence> |
| | | <script> |
| | | myKnownIssue = None |
| | | |
| | | replServer = server |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | </script> |
| | |
| | | 'dsBaseDN' : 'cn=changelog', |
| | | 'dsFilter' : '(objectclass=*)', |
| | | 'changeNumberFilter' : chgNumberFilter, |
| | | 'changelogCookie' : lastCookie, |
| | | 'knownIssue' : myKnownIssue |
| | | 'changelogCookie' : lastCookie |
| | | } |
| | | </call> |
| | | <script> |
| | |
| | | 'Number of added entries %s does not match number of ECL \ |
| | | entries %s' % (len(addedEntries), len(eclEntries)) |
| | | </message> |
| | | <call function="'testFailed'"/> |
| | | <call function="'testFailed'"/> |
| | | </sequence> |
| | | </if> |
| | | |
| | | <iterate var="eclEntry" |
| | | in="eclEntries" |
| | | indexvar="i"> |
| | | <sequence> |
| | | |
| | | <script> |
| | | if ecl_mode == 'opends': |
| | | nextIndex = eclEntry['changelogcookie'][0] |
| | | else: |
| | | nextChgNumber = int(eclEntry['changenumber'][0]) + 1 |
| | | nextIndex = str(nextChgNumber) |
| | | |
| | | addedEntry = addedEntries[i] |
| | | myTargetDN = addedEntry['dn'][0] |
| | | myChangeType = 'add' |
| | | myChangeTime = addedEntry['createtimestamp'][0] |
| | | myTargetEntryUUID = addedEntry['entryuuid'][0] |
| | | # myReplicationCSN = ----> grab from where??? |
| | | # myReplicatIdentifier = ----> grab from ldap server |
| | | myChanges = {} |
| | | |
| | | for attr in addedEntry.keys(): |
| | | if (attr != 'dn') and (attr != 'changelogcookie') : |
| | | myChanges[attr] = addedEntry[attr] |
| | | |
| | | if ecl_mode != 'opends': |
| | | myIntChangeNumber = int(searchIndex) + i |
| | | myChangeNumber = str(myIntChangeNumber) |
| | | else: |
| | | myChangeNumber = None |
| | | </script> |
| | | <message> |
| | | 'Parsed changelog entry: \n%s' % eclEntry |
| | | </message> |
| | | <message> |
| | | 'Index to use for the next ECL search: %s' % nextIndex |
| | | </message> |
| | | |
| | | <if expr="addedEntry and eclEntry"> |
| | | <call function="'checkChangelogEntry'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'changelogEntry' : eclEntry, |
| | | 'targetDN' : myTargetDN, |
| | | 'changeNumber' : myChangeNumber, |
| | | 'changeType' : myChangeType, |
| | | 'changeTime' : myChangeTime, |
| | | 'targetEntryUUID' : myTargetEntryUUID, |
| | | 'changes' : myChanges |
| | | } |
| | | </call> |
| | | <else> |
| | | <else> |
| | | <sequence> |
| | | <iterate var="eclEntry" |
| | | in="eclEntries" |
| | | indexvar="i"> |
| | | <sequence> |
| | | <message log="1" level="'Error'"> |
| | | 'Unable to check external changelog entry \ |
| | | (failed to read LDAP and/or changelog entry)' |
| | | |
| | | <script> |
| | | if ecl_mode == 'opends': |
| | | nextIndex = eclEntry['changelogcookie'][0] |
| | | else: |
| | | nextChgNumber = int(eclEntry['changenumber'][0]) + 1 |
| | | nextIndex = str(nextChgNumber) |
| | | |
| | | addedEntry = addedEntries[i] |
| | | myTargetDN = addedEntry['dn'][0] |
| | | myChangeType = 'add' |
| | | myChangeTime = addedEntry['createtimestamp'][0] |
| | | myTargetEntryUUID = addedEntry['entryuuid'][0] |
| | | # myReplicationCSN = ----> grab from where??? |
| | | # myReplicatIdentifier = ----> grab from ldap server |
| | | myChanges = {} |
| | | |
| | | for attr in addedEntry.keys(): |
| | | if (attr != 'dn') and (attr != 'changelogcookie') : |
| | | myChanges[attr] = addedEntry[attr] |
| | | |
| | | if ecl_mode != 'opends': |
| | | myIntChangeNumber = int(searchIndex) + i |
| | | myChangeNumber = str(myIntChangeNumber) |
| | | else: |
| | | myChangeNumber = None |
| | | </script> |
| | | <message> |
| | | 'Parsed changelog entry: \n%s' % eclEntry |
| | | </message> |
| | | <call function="'testFailed'"/> |
| | | <message> |
| | | 'Index to use for the next ECL search: %s' % nextIndex |
| | | </message> |
| | | |
| | | <if expr="addedEntry and eclEntry"> |
| | | <call function="'checkChangelogEntry'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'changelogEntry' : eclEntry, |
| | | 'targetDN' : myTargetDN, |
| | | 'changeNumber' : myChangeNumber, |
| | | 'changeType' : myChangeType, |
| | | 'changeTime' : myChangeTime, |
| | | 'targetEntryUUID' : myTargetEntryUUID, |
| | | 'changes' : myChanges |
| | | } |
| | | </call> |
| | | <else> |
| | | <sequence> |
| | | <message log="1" level="'Error'"> |
| | | 'Unable to check external changelog entry \ |
| | | (failed to read LDAP and/or changelog entry)' |
| | | </message> |
| | | <call function="'testFailed'"/> |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | |
| | | </sequence> |
| | | </iterate> |
| | | |
| | | </iterate> |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | </sequence> |
| | | <else> |
| | | <message log="1" level="'Error'"> |
| | |
| | | 'Parsed changelog entry: \n%s' % eclEntry |
| | | </message> |
| | | <message> |
| | | 'Index to use for the next ECL search: %s' % \ |
| | | nextIndex |
| | | 'Index to use for the next ECL search: %s' % nextIndex |
| | | </message> |
| | | |
| | | <if expr="addedEntry and eclEntry"> |
| | |
| | | 'Parsed changelog entry: \n%s' % eclEntry |
| | | </message> |
| | | <message> |
| | | 'Index to use for the next ECL search: %s' % \ |
| | | nextIndex |
| | | 'Index to use for the next ECL search: %s' % nextIndex |
| | | </message> |
| | | |
| | | <if expr="addedEntry and eclEntry"> |
| | |
| | | 'Parsed changelog entry: \n%s' % eclEntry |
| | | </message> |
| | | <message> |
| | | 'Index to use for the next ECL search: %s' % \ |
| | | nextIndex |
| | | 'Index to use for the next ECL search: %s' % nextIndex |
| | | </message> |
| | | |
| | | <if expr="addedEntry and eclEntry"> |
| | |
| | | 'Parsed changelog entry: \n%s' % eclEntry |
| | | </message> |
| | | <message> |
| | | 'Index to use for the next ECL search: %s' % \ |
| | | nextIndex |
| | | 'Index to use for the next ECL search: %s' % nextIndex |
| | | </message> |
| | | |
| | | <if expr="addedEntry and eclEntry"> |
| | |
| | | 'Parsed changelog entry: \n%s' % eclEntry |
| | | </message> |
| | | <message> |
| | | 'Index to use for the next ECL search: %s' % \ |
| | | nextIndex |
| | | 'Index to use for the next ECL search: %s' % nextIndex |
| | | </message> |
| | | |
| | | <if expr="addedEntry and eclEntry"> |
| | |
| | | 'Number of added entries %s does not match number of ECL \ |
| | | entries %s' % (len(addedEntries), len(eclEntries)) |
| | | </message> |
| | | <call function="'testFailed'"/> |
| | | <call function="'testFailed'"/> |
| | | </sequence> |
| | | </if> |
| | | |
| | | <iterate var="eclEntry" |
| | | in="eclEntries" |
| | | indexvar="i"> |
| | | <sequence> |
| | | |
| | | <script> |
| | | if ecl_mode == 'opends': |
| | | nextIndex = eclEntry['changelogcookie'][0] |
| | | else: |
| | | nextChgNumber = int(eclEntry['changenumber'][0]) + 1 |
| | | nextIndex = str(nextChgNumber) |
| | | |
| | | addedEntry = addedEntries[i] |
| | | myTargetDN = addedEntry['dn'][0] |
| | | myChangeType = 'add' |
| | | myChangeTime = addedEntry['createtimestamp'][0] |
| | | myTargetEntryUUID = addedEntry['entryuuid'][0] |
| | | # myReplicationCSN = ----> grab from where??? |
| | | # myReplicatIdentifier = ----> grab from ldap server |
| | | myChanges = {} |
| | | myIncAttrs = {} |
| | | |
| | | for attr in addedEntry.keys(): |
| | | if (attr != 'dn') and (attr != 'changelogcookie') : |
| | | myChanges[attr] = addedEntry[attr] |
| | | |
| | | for incAttr in incAttrs: |
| | | if incAttr in addedEntry.keys(): |
| | | myIncAttrs[incAttr] = addedEntry[incAttr] |
| | | else: |
| | | myIncAttrs[incAttr] = ' ' |
| | | |
| | | if ecl_mode != 'opends': |
| | | myIntChangeNumber = int(searchIndex) + i |
| | | myChangeNumber = str(myIntChangeNumber) |
| | | else: |
| | | myChangeNumber = None |
| | | </script> |
| | | <message> |
| | | 'Parsed changelog entry: \n%s' % eclEntry |
| | | </message> |
| | | <message> |
| | | 'Index to use for the next ECL search: %s' % nextIndex |
| | | </message> |
| | | |
| | | <if expr="addedEntry and eclEntry"> |
| | | <call function="'checkChangelogEntry'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'changelogEntry' : eclEntry, |
| | | 'targetDN' : myTargetDN, |
| | | 'changeNumber' : myChangeNumber, |
| | | 'changeType' : myChangeType, |
| | | 'changeTime' : myChangeTime, |
| | | 'targetEntryUUID' : myTargetEntryUUID, |
| | | 'changes' : myChanges, |
| | | 'includeAttrs' : myIncAttrs |
| | | } |
| | | </call> |
| | | <else> |
| | | <else> |
| | | <sequence> |
| | | <iterate var="eclEntry" |
| | | in="eclEntries" |
| | | indexvar="i"> |
| | | <sequence> |
| | | <message log="1" level="'Error'"> |
| | | 'Unable to check external changelog entry \ |
| | | (failed to read LDAP and/or changelog entry)' |
| | | |
| | | <script> |
| | | if ecl_mode == 'opends': |
| | | nextIndex = eclEntry['changelogcookie'][0] |
| | | else: |
| | | nextChgNumber = int(eclEntry['changenumber'][0]) + 1 |
| | | nextIndex = str(nextChgNumber) |
| | | |
| | | addedEntry = addedEntries[i] |
| | | myTargetDN = addedEntry['dn'][0] |
| | | myChangeType = 'add' |
| | | myChangeTime = addedEntry['createtimestamp'][0] |
| | | myTargetEntryUUID = addedEntry['entryuuid'][0] |
| | | # myReplicationCSN = ----> grab from where??? |
| | | # myReplicatIdentifier = ----> grab from ldap server |
| | | myChanges = {} |
| | | myIncAttrs = {} |
| | | |
| | | for attr in addedEntry.keys(): |
| | | if (attr != 'dn') and (attr != 'changelogcookie') : |
| | | myChanges[attr] = addedEntry[attr] |
| | | |
| | | for incAttr in incAttrs: |
| | | if incAttr in addedEntry.keys(): |
| | | myIncAttrs[incAttr] = addedEntry[incAttr] |
| | | else: |
| | | myIncAttrs[incAttr] = ' ' |
| | | |
| | | if ecl_mode != 'opends': |
| | | myIntChangeNumber = int(searchIndex) + i |
| | | myChangeNumber = str(myIntChangeNumber) |
| | | else: |
| | | myChangeNumber = None |
| | | </script> |
| | | <message> |
| | | 'Parsed changelog entry: \n%s' % eclEntry |
| | | </message> |
| | | <call function="'testFailed'"/> |
| | | <message> |
| | | 'Index to use for the next ECL search: %s' % nextIndex |
| | | </message> |
| | | |
| | | <if expr="addedEntry and eclEntry"> |
| | | <call function="'checkChangelogEntry'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'changelogEntry' : eclEntry, |
| | | 'targetDN' : myTargetDN, |
| | | 'changeNumber' : myChangeNumber, |
| | | 'changeType' : myChangeType, |
| | | 'changeTime' : myChangeTime, |
| | | 'targetEntryUUID' : myTargetEntryUUID, |
| | | 'changes' : myChanges, |
| | | 'includeAttrs' : myIncAttrs |
| | | } |
| | | </call> |
| | | <else> |
| | | <sequence> |
| | | <message log="1" level="'Error'"> |
| | | 'Unable to check external changelog entry \ |
| | | (failed to read LDAP and/or changelog entry)' |
| | | </message> |
| | | <call function="'testFailed'"/> |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | |
| | | </sequence> |
| | | </iterate> |
| | | |
| | | </iterate> |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | </sequence> |
| | | <else> |
| | | <sequence> |