From 9ad4d60592fdc37ae89672c29859b8463e183718 Mon Sep 17 00:00:00 2001 From: Ade Lee Date: Mon, 7 May 2012 11:14:30 -0400 Subject: BZ 819111 - non existent container ou=cmsusers breaks replication Added code to create container on master if it does not exist. --- .../cms/servlet/csadmin/ConfigurationUtils.java | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'base/common/src/com/netscape/cms/servlet/csadmin/ConfigurationUtils.java') diff --git a/base/common/src/com/netscape/cms/servlet/csadmin/ConfigurationUtils.java b/base/common/src/com/netscape/cms/servlet/csadmin/ConfigurationUtils.java index d491da07c..5328fc054 100644 --- a/base/common/src/com/netscape/cms/servlet/csadmin/ConfigurationUtils.java +++ b/base/common/src/com/netscape/cms/servlet/csadmin/ConfigurationUtils.java @@ -1591,7 +1591,27 @@ public class ConfigurationUtils { throws LDAPException { LDAPAttributeSet attrs = null; LDAPEntry entry = null; - String dn = "cn=" + bindUser + ",ou=csusers,cn=config"; + + // for older subsystems, the container ou=csusers, cn=config may not yet exist + String dn = "ou=csusers, cn=config"; + try { + attrs = new LDAPAttributeSet(); + attrs.add(new LDAPAttribute("objectclass", "top")); + attrs.add(new LDAPAttribute("objectclass", "organizationalUnit")); + attrs.add(new LDAPAttribute("ou", "csusers")); + entry = new LDAPEntry(dn, attrs); + conn.add(entry); + } catch (LDAPException e) { + if (e.getLDAPResultCode() == LDAPException.ENTRY_ALREADY_EXISTS) { + CMS.debug("createReplicationManager: containing ou already exists"); + } else { + CMS.debug("createReplicationManager: Failed to create containing ou. Exception: " + + e.toString()); + throw e; + } + } + + dn = "cn=" + bindUser + ",ou=csusers,cn=config"; try { attrs = new LDAPAttributeSet(); attrs.add(new LDAPAttribute("objectclass", "top")); -- cgit