From a052caad0008ede711b0c43d9955eccc3bb858ba Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Wed, 26 Sep 2007 12:21:02 +0000
Subject: [PATCH] Merge branches/temp-admin@3208 onto trunk@3208.

---
 opendj-sdk/opends/tests/functional-tests/shared/python/replication.py |  864 ++++++++++++++++++++++++++++----------------------------
 1 files changed, 432 insertions(+), 432 deletions(-)

diff --git a/opendj-sdk/opends/tests/functional-tests/shared/python/replication.py b/opendj-sdk/opends/tests/functional-tests/shared/python/replication.py
index 43a18bc..db79e8c 100644
--- a/opendj-sdk/opends/tests/functional-tests/shared/python/replication.py
+++ b/opendj-sdk/opends/tests/functional-tests/shared/python/replication.py
@@ -1,432 +1,432 @@
-#!/usr/bin/python
-
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License, Version 1.0 only
-# (the "License").  You may not use this file except in compliance
-# with the License.
-#
-# You can obtain a copy of the license at
-# trunk/opends/resource/legal-notices/OpenDS.LICENSE
-# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at
-# trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
-# add the following below this CDDL HEADER, with the fields enclosed
-# information:
-#      Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-#
-#      Portions Copyright 2007 Sun Microsystems, Inc.
-
-
-
-
-
-# Global variable containing the list of servers ("Server" class instances) deployed
-_topologyServerList = []
-
-
-
-# Define ChangelogServer class
-class ChangelogServer:
-  def __init__(self, port, id):
-    self.port = port
-    self.id = id
-    self.changelogServerList = []
-
-  def addChangelogServer(self, hostname, port):
-    self.changelogServerList.append('%s:%s' % (hostname, port))
-
-  def getPort(self):
-    return self.port
-
-  def getId(self):
-    return self.id
-
-  def getChangelogServerList(self):
-    return self.changelogServerList
-
-	  
-# Define SynchronizedSuffix class:
-class SynchronizedSuffix:
-  def __init__(self, suffixDn, id):
-    self.suffixDn = suffixDn
-    self.id = id
-    self.changelogServerList = []
-
-  def addChangelogServer(self, hostname, port):
-    self.changelogServerList.append('%s:%s' % (hostname, port))
-
-  def getSuffixDn(self):
-    return self.suffixDn
-
-  def getId(self):
-    return self.id
-
-  def getChangelogServerList(self):
-    return self.changelogServerList
-	  
-	    
-# Define Server class
-class Server:
-  def __init__(self, hostname, dir, port, sslPort, jmxPort, rootDn, rootPwd, baseDn):
-    self.hostname = hostname
-    self.dir = dir
-    self.port = port
-    self.sslPort = sslPort
-    self.jmxPort = jmxPort    
-    self.rootDn = rootDn
-    self.rootPwd = rootPwd
-    self.baseDn = baseDn
-    self.changelogServer = None
-    self.synchronizedSuffixList = []
-
-  def __repr__(self):
-    return "Server: hostname=%s, directory=%s" % (self.hostanme, self.dir)
-
-  def addChangelogServer(self, changelogServer):
-    self.changelogServer = changelogServer
-
-  def addSynchronizedSuffix(self, synchronizedSuffix):
-    self.synchronizedSuffixList.append(synchronizedSuffix)
-
-  def getHostname(self):
-    return self.hostname
-
-  def getDir(self):
-    return self.dir
-
-  def getPort(self):
-    return self.port
-
-  def getSslPort(self):
-    return self.sslPort
-
-  def getJmxPort(self):
-    return self.jmxPort
-    
-  def getRootDn(self):
-    return self.rootDn
-
-  def getRootPwd(self):
-    return self.rootPwd
-
-  def getBaseDn(self):
-    return self.baseDn
-
-  def getChangelogServer(self):
-    return self.changelogServer
-
-  def getSynchronizedSuffixList(self):
-    return self.synchronizedSuffixList
-    
-  def requiresSynchronization(self):
-    return (self.changelogServer is not None) or (len(self.synchronizedSuffixList) > 0)
-
-
-
-
-
-# Define the function that writes a ldif file with the replication configuration
-# corresponding to the given server.
-def write_replication_conf_ldif_file(path, server):
-  
-  ldifLines = []
-
-  # write the main replication configuration entry
-  ldifLines.append('')
-	
-  ldifLines.append('dn: cn=Multimaster Synchronization,cn=Synchronization Providers,cn=config')
-  ldifLines.append('objectClass: top')
-  ldifLines.append('objectClass: ds-cfg-synchronization-provider')
-  ldifLines.append('objectClass: ds-cfg-multimaster-synchronization-provider')  
-  ldifLines.append('cn: Multimaster Synchronization')  
-  ldifLines.append('ds-cfg-synchronization-provider-enabled: true')
-  ldifLines.append('ds-cfg-synchronization-provider-class: org.opends.server.replication.plugin.MultimasterReplication')
-
-
-  # if server is a changelog server, write its corresponding configuration
-  changelogServer = server.getChangelogServer()
-  if changelogServer is not None :
-    port = changelogServer.getPort()
-    id = changelogServer.getId()
-    list = changelogServer.getChangelogServerList()
-    
-    ldifLines.append('')
-    ldifLines.append('dn: cn=Replication Server,cn=Multimaster Synchronization,cn=Synchronization Providers,cn=config')
-    ldifLines.append('objectClass: top')
-    ldifLines.append('objectClass: ds-cfg-replication-server-config')
-    ldifLines.append('cn: Replication Server')
-    ldifLines.append('ds-cfg-replication-server-port: %s' % port)
-    
-    for chglgServer in list:
-      ldifLines.append('ds-cfg-replication-server: %s' % chglgServer)
-	  
-    ldifLines.append('ds-cfg-replication-server-id: %s' % id)
-
-
-  # write the domains replication configuration entry
-  ldifLines.append('')
-  ldifLines.append('dn: cn=domains,cn=Multimaster Synchronization,cn=Synchronization Providers,cn=config')
-  ldifLines.append('objectClass: top')
-  ldifLines.append('objectClass: ds-cfg-branch')
-  ldifLines.append('cn: domains')
-  
-  # write the configuration for the synchronized suffixes, if any
-  synchronizedSuffixList = server.getSynchronizedSuffixList()
-  for i in range( len(synchronizedSuffixList) ):
-    suffix = synchronizedSuffixList[i]
-    dn = suffix.getSuffixDn()
-    id = suffix.getId()
-    list = suffix.getChangelogServerList()
-    name = 'SUFFIX-%s' % i
-    
-    ldifLines.append('')
-    ldifLines.append('dn: cn=%s,cn=domains,cn=Multimaster Synchronization,cn=Synchronization Providers,cn=config' % name)
-    ldifLines.append('objectClass: top')
-    ldifLines.append('objectClass: ds-cfg-replication-domain-config')
-    ldifLines.append('cn: %s' % name)
-    ldifLines.append('ds-cfg-replication-dn: %s' % dn)
-	
-    for chglgServer in list:
-      ldifLines.append('ds-cfg-replication-server: %s' % chglgServer)
-
-    ldifLines.append('ds-cfg-directory-server-id: %s' % id)
-    ldifLines.append('ds-cfg-receive-status: true')	
-
-
-  # write out the ldif file
-  outfile = open(path,"w")
-          
-  for line in ldifLines:
-    outfile.write("%s\n" % line)
-          
-  outfile.close()
-
-
-
-
-
-
-# Define the function that writes a ldif file with the root suffix entry to add 
-# for a given suffix.
-def write_replication_add_root_suffix_ldif_file(path, suffix):
-  
-  ldifLines = []
-  
-  equalChar = suffix.find('=')
-  commaChar = suffix.find(',')
-  if commaChar == -1:
-    commaChar = len(suffix)
-  rdnType = suffix[:equalChar].strip()
-  rdnValue = suffix[equalChar + 1 : commaChar].strip()
-  
-  if rdnType == 'o':
-    objclass = 'organization'
-  elif rdnType == 'ou':
-    objclass = 'organizationalunit'
-  elif rdnType == 'dc':
-    objclass = 'domain'
-  else:
-    objclass = 'unknown'
-  
-  ldifLines.append('dn: %s' % suffix)
-  ldifLines.append('%s: %s' % (rdnType,rdnValue))
-  ldifLines.append('objectclass: top')
-  ldifLines.append('objectclass: %s' % objclass)
-  
-  
-  # write out the ldif file
-  outfile = open(path,"w")
-  
-  for line in ldifLines:
-    outfile.write("%s\n" % line)
-  
-  outfile.close()    
-
-
-
-# Define the function that writes a ldif file with an entry to add 
-# under a given suffix.
-def write_replication_add_single_ldif_file(path, suffix):
-  
-  ldifLines = []
-  
-  
-  ldifLines.append('dn: uid=scarter,%s' % suffix)
-  ldifLines.append('cn: Sam Carter')
-  ldifLines.append('sn: Carter')
-  ldifLines.append('givenname: Sam')
-  ldifLines.append('objectclass: top')
-  ldifLines.append('objectclass: person')
-  ldifLines.append('objectclass: organizationalPerson')
-  ldifLines.append('objectclass: inetOrgPerson')
-  ldifLines.append('ou: Accounting')
-  ldifLines.append('ou: People')
-  ldifLines.append('l: Sunnyvale')
-  ldifLines.append('uid: scarter')
-  ldifLines.append('mail: scarter@example.com')
-  ldifLines.append('telephonenumber: +1 408 555 4798')
-  ldifLines.append('facsimiletelephonenumber: +1 408 555 9751')
-  ldifLines.append('roomnumber: 4612')
-  ldifLines.append('userpassword: sprain')
-
-  # write out the ldif file
-  outfile = open(path,"w")
-          
-  for line in ldifLines:
-    outfile.write("%s\n" % line)
-          
-  outfile.close()  
-
-
-
-
-
-
-# Define the function that writes a ldif file with the entries to add 
-# under a given suffix.
-def write_replication_add_multiple_ldif_file(path, suffix):
-  
-  ldifLines = []
-
-  ldifLines.append('dn: o=replication tests,%s' % suffix)
-  ldifLines.append('o: replication tests')
-  ldifLines.append('objectclass: top')
-  ldifLines.append('objectclass: organization')
-  ldifLines.append('')
-  ldifLines.append('dn: ou=People,o=replication tests,%s' % suffix)
-  ldifLines.append('ou: People')
-  ldifLines.append('objectclass: top')
-  ldifLines.append('objectclass: organizationalunit')
-  ldifLines.append('')
-  ldifLines.append('dn: ou=Groups, o=replication tests,%s' % suffix)
-  ldifLines.append('objectclass: top')
-  ldifLines.append('objectclass: organizationalunit')
-  ldifLines.append('ou: Groups')
-  ldifLines.append('')
-  ldifLines.append('dn: cn=Directory Administrators, ou=Groups, o=replication tests,%s' % suffix)
-  ldifLines.append('cn: Directory Administrators')
-  ldifLines.append('objectclass: top')
-  ldifLines.append('objectclass: groupofuniquenames')
-  ldifLines.append('ou: Groups')
-  ldifLines.append('uniquemember: uid=kvaughan, ou=People, o=replication tests,%s' % suffix)
-  ldifLines.append('uniquemember: uid=rdaugherty, ou=People, o=replication tests,%s' % suffix)
-  ldifLines.append('uniquemember: uid=hmiller, ou=People, o=replication tests,%s' % suffix)
-  ldifLines.append('')
-  ldifLines.append('dn: ou=Special Users,o=replication tests,%s' % suffix)
-  ldifLines.append('objectclass: top')
-  ldifLines.append('objectclass: organizationalUnit')
-  ldifLines.append('ou: Special Users')
-  ldifLines.append('description: Special Administrative Accounts')
-  ldifLines.append('')
-  ldifLines.append('dn: uid=scarter,ou=People,o=replication tests,%s' % suffix)
-  ldifLines.append('cn: Sam Carter')
-  ldifLines.append('sn: Carter')
-  ldifLines.append('givenname: Sam')
-  ldifLines.append('objectclass: top')
-  ldifLines.append('objectclass: person')
-  ldifLines.append('objectclass: organizationalPerson')
-  ldifLines.append('objectclass: inetOrgPerson')
-  ldifLines.append('ou: Accounting')
-  ldifLines.append('ou: People')
-  ldifLines.append('l: Sunnyvale')
-  ldifLines.append('uid: scarter')
-  ldifLines.append('mail: scarter@example.com')
-  ldifLines.append('telephonenumber: +1 408 555 4798')
-  ldifLines.append('facsimiletelephonenumber: +1 408 555 9751')
-  ldifLines.append('roomnumber: 4612')
-  ldifLines.append('userpassword: sprain')
-
-  # write out the ldif file
-  outfile = open(path,"w")
-          
-  for line in ldifLines:
-    outfile.write("%s\n" % line)
-          
-  outfile.close()  
-
-
-
-
-# Define the function that writes a ldif file with the modify to operate
-# on an entry in a given suffix.
-def write_replication_mod_ldif_file(path, dn, mod_type, attr_type, attr_value):
-  
-  ldifLines = []
-
-  ldifLines.append('dn: %s' % dn)
-  ldifLines.append('changetype: modify')
-  ldifLines.append('%s: %s' % (mod_type,attr_type))
-  if attr_value != None :  
-    ldifLines.append('%s: %s' % (attr_type,attr_value))
-  
-  
-  # write out the ldif file
-  outfile = open(path,"w")
-          
-  for line in ldifLines:
-    outfile.write("%s\n" % line)
-          
-  outfile.close()  
-  
-
-
-# Define the function that writes a ldif file with the modify to operate
-# on an entry in a given suffix.
-def write_replication_mod_binary_ldif_file(path, dn, mod_type, attr_type, binary_value_path):
-  
-  # open file and read the binary value (which is encoded in base64)
-  binaryValueFile = open(binary_value_path, "r")
-  binaryValue = binaryValueFile.read()
-  binaryValueFile.close()
-
-  ldifLines = []
-
-  ldifLines.append('dn: %s' % dn)
-  ldifLines.append('changetype: modify')
-  ldifLines.append('%s: %s' % (mod_type,attr_type))
-  ldifLines.append('%s:: %s' % (attr_type,binaryValue))
-  
-  
-  # write out the ldif file
-  outfile = open(path,"w")
-          
-  for line in ldifLines:
-    outfile.write("%s\n" % line)
-          
-  outfile.close()  
-  
-  
-
-
-# Define the function that writes a ldif file with the modDN to operate
-# on an entry in a given suffix.
-def write_replication_moddn_ldif_file(path, dn, newrdn, newsuperior, deleteoldrdn):
-  
-  ldifLines = []
-
-  ldifLines.append('dn: %s' % dn)
-  ldifLines.append('changetype: moddn')
-  ldifLines.append('newRDN: %s' % newrdn)
-  ldifLines.append('deleteOldRDN: %s' % deleteoldrdn)  
-  if newsuperior != None:
-    ldifLines.append('newSuperior: %s' % newsuperior)  
-
-  
-  
-  # write out the ldif file
-  outfile = open(path,"w")
-          
-  for line in ldifLines:
-    outfile.write("%s\n" % line)
-          
-  outfile.close()  
-
+#!/usr/bin/python
+
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License").  You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE
+# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
+# add the following below this CDDL HEADER, with the fields enclosed
+# information:
+#      Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+#      Portions Copyright 2007 Sun Microsystems, Inc.
+
+
+
+
+
+# Global variable containing the list of servers ("Server" class instances) deployed
+_topologyServerList = []
+
+
+
+# Define ChangelogServer class
+class ChangelogServer:
+  def __init__(self, port, id):
+    self.port = port
+    self.id = id
+    self.changelogServerList = []
+
+  def addChangelogServer(self, hostname, port):
+    self.changelogServerList.append('%s:%s' % (hostname, port))
+
+  def getPort(self):
+    return self.port
+
+  def getId(self):
+    return self.id
+
+  def getChangelogServerList(self):
+    return self.changelogServerList
+
+	  
+# Define SynchronizedSuffix class:
+class SynchronizedSuffix:
+  def __init__(self, suffixDn, id):
+    self.suffixDn = suffixDn
+    self.id = id
+    self.changelogServerList = []
+
+  def addChangelogServer(self, hostname, port):
+    self.changelogServerList.append('%s:%s' % (hostname, port))
+
+  def getSuffixDn(self):
+    return self.suffixDn
+
+  def getId(self):
+    return self.id
+
+  def getChangelogServerList(self):
+    return self.changelogServerList
+	  
+	    
+# Define Server class
+class Server:
+  def __init__(self, hostname, dir, port, sslPort, jmxPort, rootDn, rootPwd, baseDn):
+    self.hostname = hostname
+    self.dir = dir
+    self.port = port
+    self.sslPort = sslPort
+    self.jmxPort = jmxPort    
+    self.rootDn = rootDn
+    self.rootPwd = rootPwd
+    self.baseDn = baseDn
+    self.changelogServer = None
+    self.synchronizedSuffixList = []
+
+  def __repr__(self):
+    return "Server: hostname=%s, directory=%s" % (self.hostanme, self.dir)
+
+  def addChangelogServer(self, changelogServer):
+    self.changelogServer = changelogServer
+
+  def addSynchronizedSuffix(self, synchronizedSuffix):
+    self.synchronizedSuffixList.append(synchronizedSuffix)
+
+  def getHostname(self):
+    return self.hostname
+
+  def getDir(self):
+    return self.dir
+
+  def getPort(self):
+    return self.port
+
+  def getSslPort(self):
+    return self.sslPort
+
+  def getJmxPort(self):
+    return self.jmxPort
+    
+  def getRootDn(self):
+    return self.rootDn
+
+  def getRootPwd(self):
+    return self.rootPwd
+
+  def getBaseDn(self):
+    return self.baseDn
+
+  def getChangelogServer(self):
+    return self.changelogServer
+
+  def getSynchronizedSuffixList(self):
+    return self.synchronizedSuffixList
+    
+  def requiresSynchronization(self):
+    return (self.changelogServer is not None) or (len(self.synchronizedSuffixList) > 0)
+
+
+
+
+
+# Define the function that writes a ldif file with the replication configuration
+# corresponding to the given server.
+def write_replication_conf_ldif_file(path, server):
+  
+  ldifLines = []
+
+  # write the main replication configuration entry
+  ldifLines.append('')
+	
+  ldifLines.append('dn: cn=Multimaster Synchronization,cn=Synchronization Providers,cn=config')
+  ldifLines.append('objectClass: top')
+  ldifLines.append('objectClass: ds-cfg-synchronization-provider')
+  ldifLines.append('objectClass: ds-cfg-replication-synchronization-provider')  
+  ldifLines.append('cn: Multimaster Synchronization')  
+  ldifLines.append('ds-cfg-enabled: true')
+  ldifLines.append('ds-cfg-java-class: org.opends.server.replication.plugin.MultimasterReplication')
+
+
+  # if server is a changelog server, write its corresponding configuration
+  changelogServer = server.getChangelogServer()
+  if changelogServer is not None :
+    port = changelogServer.getPort()
+    id = changelogServer.getId()
+    list = changelogServer.getChangelogServerList()
+    
+    ldifLines.append('')
+    ldifLines.append('dn: cn=Replication Server,cn=Multimaster Synchronization,cn=Synchronization Providers,cn=config')
+    ldifLines.append('objectClass: top')
+    ldifLines.append('objectClass: ds-cfg-replication-server')
+    ldifLines.append('cn: Replication Server')
+    ldifLines.append('ds-cfg-replication-port: %s' % port)
+    
+    for chglgServer in list:
+      ldifLines.append('ds-cfg-replication-server: %s' % chglgServer)
+	  
+    ldifLines.append('ds-cfg-replication-server-id: %s' % id)
+
+
+  # write the domains replication configuration entry
+  ldifLines.append('')
+  ldifLines.append('dn: cn=domains,cn=Multimaster Synchronization,cn=Synchronization Providers,cn=config')
+  ldifLines.append('objectClass: top')
+  ldifLines.append('objectClass: ds-cfg-branch')
+  ldifLines.append('cn: domains')
+  
+  # write the configuration for the synchronized suffixes, if any
+  synchronizedSuffixList = server.getSynchronizedSuffixList()
+  for i in range( len(synchronizedSuffixList) ):
+    suffix = synchronizedSuffixList[i]
+    dn = suffix.getSuffixDn()
+    id = suffix.getId()
+    list = suffix.getChangelogServerList()
+    name = 'SUFFIX-%s' % i
+    
+    ldifLines.append('')
+    ldifLines.append('dn: cn=%s,cn=domains,cn=Multimaster Synchronization,cn=Synchronization Providers,cn=config' % name)
+    ldifLines.append('objectClass: top')
+    ldifLines.append('objectClass: ds-cfg-replication-domain')
+    ldifLines.append('cn: %s' % name)
+    ldifLines.append('ds-cfg-base-dn: %s' % dn)
+	
+    for chglgServer in list:
+      ldifLines.append('ds-cfg-replication-server: %s' % chglgServer)
+
+    ldifLines.append('ds-cfg-server-id: %s' % id)
+    ldifLines.append('ds-cfg-receive-status: true')	
+
+
+  # write out the ldif file
+  outfile = open(path,"w")
+          
+  for line in ldifLines:
+    outfile.write("%s\n" % line)
+          
+  outfile.close()
+
+
+
+
+
+
+# Define the function that writes a ldif file with the root suffix entry to add 
+# for a given suffix.
+def write_replication_add_root_suffix_ldif_file(path, suffix):
+  
+  ldifLines = []
+  
+  equalChar = suffix.find('=')
+  commaChar = suffix.find(',')
+  if commaChar == -1:
+    commaChar = len(suffix)
+  rdnType = suffix[:equalChar].strip()
+  rdnValue = suffix[equalChar + 1 : commaChar].strip()
+  
+  if rdnType == 'o':
+    objclass = 'organization'
+  elif rdnType == 'ou':
+    objclass = 'organizationalunit'
+  elif rdnType == 'dc':
+    objclass = 'domain'
+  else:
+    objclass = 'unknown'
+  
+  ldifLines.append('dn: %s' % suffix)
+  ldifLines.append('%s: %s' % (rdnType,rdnValue))
+  ldifLines.append('objectclass: top')
+  ldifLines.append('objectclass: %s' % objclass)
+  
+  
+  # write out the ldif file
+  outfile = open(path,"w")
+  
+  for line in ldifLines:
+    outfile.write("%s\n" % line)
+  
+  outfile.close()    
+
+
+
+# Define the function that writes a ldif file with an entry to add 
+# under a given suffix.
+def write_replication_add_single_ldif_file(path, suffix):
+  
+  ldifLines = []
+  
+  
+  ldifLines.append('dn: uid=scarter,%s' % suffix)
+  ldifLines.append('cn: Sam Carter')
+  ldifLines.append('sn: Carter')
+  ldifLines.append('givenname: Sam')
+  ldifLines.append('objectclass: top')
+  ldifLines.append('objectclass: person')
+  ldifLines.append('objectclass: organizationalPerson')
+  ldifLines.append('objectclass: inetOrgPerson')
+  ldifLines.append('ou: Accounting')
+  ldifLines.append('ou: People')
+  ldifLines.append('l: Sunnyvale')
+  ldifLines.append('uid: scarter')
+  ldifLines.append('mail: scarter@example.com')
+  ldifLines.append('telephonenumber: +1 408 555 4798')
+  ldifLines.append('facsimiletelephonenumber: +1 408 555 9751')
+  ldifLines.append('roomnumber: 4612')
+  ldifLines.append('userpassword: sprain')
+
+  # write out the ldif file
+  outfile = open(path,"w")
+          
+  for line in ldifLines:
+    outfile.write("%s\n" % line)
+          
+  outfile.close()  
+
+
+
+
+
+
+# Define the function that writes a ldif file with the entries to add 
+# under a given suffix.
+def write_replication_add_multiple_ldif_file(path, suffix):
+  
+  ldifLines = []
+
+  ldifLines.append('dn: o=replication tests,%s' % suffix)
+  ldifLines.append('o: replication tests')
+  ldifLines.append('objectclass: top')
+  ldifLines.append('objectclass: organization')
+  ldifLines.append('')
+  ldifLines.append('dn: ou=People,o=replication tests,%s' % suffix)
+  ldifLines.append('ou: People')
+  ldifLines.append('objectclass: top')
+  ldifLines.append('objectclass: organizationalunit')
+  ldifLines.append('')
+  ldifLines.append('dn: ou=Groups, o=replication tests,%s' % suffix)
+  ldifLines.append('objectclass: top')
+  ldifLines.append('objectclass: organizationalunit')
+  ldifLines.append('ou: Groups')
+  ldifLines.append('')
+  ldifLines.append('dn: cn=Directory Administrators, ou=Groups, o=replication tests,%s' % suffix)
+  ldifLines.append('cn: Directory Administrators')
+  ldifLines.append('objectclass: top')
+  ldifLines.append('objectclass: groupofuniquenames')
+  ldifLines.append('ou: Groups')
+  ldifLines.append('uniquemember: uid=kvaughan, ou=People, o=replication tests,%s' % suffix)
+  ldifLines.append('uniquemember: uid=rdaugherty, ou=People, o=replication tests,%s' % suffix)
+  ldifLines.append('uniquemember: uid=hmiller, ou=People, o=replication tests,%s' % suffix)
+  ldifLines.append('')
+  ldifLines.append('dn: ou=Special Users,o=replication tests,%s' % suffix)
+  ldifLines.append('objectclass: top')
+  ldifLines.append('objectclass: organizationalUnit')
+  ldifLines.append('ou: Special Users')
+  ldifLines.append('description: Special Administrative Accounts')
+  ldifLines.append('')
+  ldifLines.append('dn: uid=scarter,ou=People,o=replication tests,%s' % suffix)
+  ldifLines.append('cn: Sam Carter')
+  ldifLines.append('sn: Carter')
+  ldifLines.append('givenname: Sam')
+  ldifLines.append('objectclass: top')
+  ldifLines.append('objectclass: person')
+  ldifLines.append('objectclass: organizationalPerson')
+  ldifLines.append('objectclass: inetOrgPerson')
+  ldifLines.append('ou: Accounting')
+  ldifLines.append('ou: People')
+  ldifLines.append('l: Sunnyvale')
+  ldifLines.append('uid: scarter')
+  ldifLines.append('mail: scarter@example.com')
+  ldifLines.append('telephonenumber: +1 408 555 4798')
+  ldifLines.append('facsimiletelephonenumber: +1 408 555 9751')
+  ldifLines.append('roomnumber: 4612')
+  ldifLines.append('userpassword: sprain')
+
+  # write out the ldif file
+  outfile = open(path,"w")
+          
+  for line in ldifLines:
+    outfile.write("%s\n" % line)
+          
+  outfile.close()  
+
+
+
+
+# Define the function that writes a ldif file with the modify to operate
+# on an entry in a given suffix.
+def write_replication_mod_ldif_file(path, dn, mod_type, attr_type, attr_value):
+  
+  ldifLines = []
+
+  ldifLines.append('dn: %s' % dn)
+  ldifLines.append('changetype: modify')
+  ldifLines.append('%s: %s' % (mod_type,attr_type))
+  if attr_value != None :  
+    ldifLines.append('%s: %s' % (attr_type,attr_value))
+  
+  
+  # write out the ldif file
+  outfile = open(path,"w")
+          
+  for line in ldifLines:
+    outfile.write("%s\n" % line)
+          
+  outfile.close()  
+  
+
+
+# Define the function that writes a ldif file with the modify to operate
+# on an entry in a given suffix.
+def write_replication_mod_binary_ldif_file(path, dn, mod_type, attr_type, binary_value_path):
+  
+  # open file and read the binary value (which is encoded in base64)
+  binaryValueFile = open(binary_value_path, "r")
+  binaryValue = binaryValueFile.read()
+  binaryValueFile.close()
+
+  ldifLines = []
+
+  ldifLines.append('dn: %s' % dn)
+  ldifLines.append('changetype: modify')
+  ldifLines.append('%s: %s' % (mod_type,attr_type))
+  ldifLines.append('%s:: %s' % (attr_type,binaryValue))
+  
+  
+  # write out the ldif file
+  outfile = open(path,"w")
+          
+  for line in ldifLines:
+    outfile.write("%s\n" % line)
+          
+  outfile.close()  
+  
+  
+
+
+# Define the function that writes a ldif file with the modDN to operate
+# on an entry in a given suffix.
+def write_replication_moddn_ldif_file(path, dn, newrdn, newsuperior, deleteoldrdn):
+  
+  ldifLines = []
+
+  ldifLines.append('dn: %s' % dn)
+  ldifLines.append('changetype: moddn')
+  ldifLines.append('newRDN: %s' % newrdn)
+  ldifLines.append('deleteOldRDN: %s' % deleteoldrdn)  
+  if newsuperior != None:
+    ldifLines.append('newSuperior: %s' % newsuperior)  
+
+  
+  
+  # write out the ldif file
+  outfile = open(path,"w")
+          
+  for line in ldifLines:
+    outfile.write("%s\n" % line)
+          
+  outfile.close()  
+

--
Gitblit v1.10.0