s4:provision Improved error handling in provisionbackend
authorZahari Zahariev <zahari.zahariev@postpath.com>
Sat, 3 Jul 2010 18:43:42 +0000 (21:43 +0300)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 2 Sep 2010 00:40:34 +0000 (10:40 +1000)
When using OpenLDAP as a backend with Samba4 we get failure during
provision and this patch will help better determining the real error.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
source4/scripting/python/samba/provisionbackend.py

index ccb793f3e5e0c40ffe2a82f3dccc0a8bc67749e8..07d3bf74422697f4527b39a61e06170e66b4758b 100644 (file)
@@ -538,11 +538,12 @@ class OpenLDAPBackend(LDAPBackend):
         if not os.path.isdir(self.olcdir):
             os.makedirs(self.olcdir, 0770)
 
-            retcode = subprocess.call([self.slapd_path, "-Ttest", "-n", "0",
-                "-f", self.slapdconf, "-F", self.olcdir], close_fds=True,
+            slapd_cmd = [self.slapd_path, "-Ttest", "-n", "0", "-f", self.slapdconf, "-F", self.olcdir]
+            retcode = subprocess.call(slapd_cmd, close_fds=True,
                 shell=False)
 
             if retcode != 0:
+                self.logger.error("conversion from slapd.conf to cn=config failed slapd started with: %s" %  "\'" + "\' \'".join(slapd_cmd) + "\'")
                 raise ProvisioningError("conversion from slapd.conf to cn=config failed")
 
             if not os.path.exists(os.path.join(self.olcdir, "cn=config.ldif")):