samba-tool domain classicupgrade: Print a better error when the ldap backend PW was...
authorAndrew Bartlett <abartlet@samba.org>
Tue, 15 Jan 2013 10:53:30 +0000 (21:53 +1100)
committerAndrew Bartlett <abartlet@samba.org>
Sat, 2 Mar 2013 20:52:19 +0000 (21:52 +0100)
Reviewed-by: Stefan Metzmacher <metze@samba.org>
python/samba/upgrade.py

index d680a7ca235c598a6f1ea1aabec7a2e36a5647d0..e013d2c831aa931fb129901180237ef965c6b3d3 100644 (file)
@@ -598,7 +598,10 @@ def upgrade_from_samba3(samba3, logger, targetdir, session_info=None,
     if samba3.lp.get("passdb backend").split(":")[0].strip() == "ldapsam":
         base_dn =  samba3.lp.get("ldap suffix")
         ldapuser = samba3.lp.get("ldap admin dn")
     if samba3.lp.get("passdb backend").split(":")[0].strip() == "ldapsam":
         base_dn =  samba3.lp.get("ldap suffix")
         ldapuser = samba3.lp.get("ldap admin dn")
-        ldappass = (secrets_db.get_ldap_bind_pw(ldapuser)).strip('\x00')
+        ldappass = secrets_db.get_ldap_bind_pw(ldapuser)
+        if ldappass is None:
+            raise ProvisioningError("ldapsam passdb backend detected but no LDAP Bind PW found in secrets.tdb for user %s.  Please point this tool at the secrets.tdb that was used by the previous installation.")
+        ldappass = ldappass.strip('\x00')
         ldap = True
     else:
         ldapuser = None
         ldap = True
     else:
         ldapuser = None