python-samba3: Secrets file loaded from private dir, not lib dir
authorAmitay Isaacs <amitay@gmail.com>
Fri, 19 Aug 2011 02:30:19 +0000 (12:30 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Fri, 19 Aug 2011 06:35:09 +0000 (16:35 +1000)
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
source4/scripting/python/samba/samba3/__init__.py
source4/scripting/python/samba/upgrade.py

index f5dde44aa0bc0fca95e533c4446882377cdae887..385d9331ec002eb7791e938934dc46b764fc0054 100644 (file)
@@ -754,12 +754,18 @@ class Samba3(object):
         self.libdir = libdir
         self.lp = ParamFile()
         self.lp.read(self.smbconfpath)
+        self.privatedir = self.lp.get("private dir") or libdir
 
     def libdir_path(self, path):
         if path[0] == "/" or path[0] == ".":
             return path
         return os.path.join(self.libdir, path)
 
+    def privatedir_path(self, path):
+        if path[0] == "/" or path[0] == ".":
+            return path
+        return os.path.join(self.privatedir, path)
+
     def get_conf(self):
         return self.lp
 
@@ -789,7 +795,7 @@ class Samba3(object):
         return Registry(self.libdir_path("registry.tdb"))
 
     def get_secrets_db(self):
-        return SecretsDatabase(self.libdir_path("secrets.tdb"))
+        return SecretsDatabase(self.privatedir_path("secrets.tdb"))
 
     def get_shareinfo_db(self):
         return ShareInfoDatabase(self.libdir_path("share_info.tdb"))
index 38e6ed87bb019f54d1b139ad2ce16d8aad43b3dc..62266818304fa64ba201e905eb4bbe7b9baf2aee 100644 (file)
@@ -535,7 +535,7 @@ def upgrade_from_samba3(samba3, logger, session_info, smbconf, targetdir):
     # We must close the direct pytdb database before the C code loads it
     secrets_db.close()
 
-    passdb.set_secrets_dir(samba3.libdir)
+    passdb.set_secrets_dir(samba3.privatedir)
 
     # Get domain sid
     try: