summaryrefslogtreecommitdiffstats
path: root/source4/scripting/python/samba
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2007-12-16 17:17:37 +0100
committerStefan Metzmacher <metze@samba.org>2007-12-21 05:50:36 +0100
commit440fd879613b94cc75eb0737af91602d96c89bf9 (patch)
treee522e6eb66a93ba5081666aa69d375a175d7f40d /source4/scripting/python/samba
parent92d42862ddb6748a4fbd001bd8f7c785627cba74 (diff)
downloadsamba-440fd879613b94cc75eb0737af91602d96c89bf9.tar.gz
samba-440fd879613b94cc75eb0737af91602d96c89bf9.tar.xz
samba-440fd879613b94cc75eb0737af91602d96c89bf9.zip
r26477: Allow setting loadparm context for a ldb context in python, plus some other minor improvements.
(This used to be commit d88527a9d6435203faa8273347d5aa41937e5395)
Diffstat (limited to 'source4/scripting/python/samba')
-rw-r--r--source4/scripting/python/samba/__init__.py31
1 files changed, 24 insertions, 7 deletions
diff --git a/source4/scripting/python/samba/__init__.py b/source4/scripting/python/samba/__init__.py
index 29d322e2fc..08a262eec8 100644
--- a/source4/scripting/python/samba/__init__.py
+++ b/source4/scripting/python/samba/__init__.py
@@ -21,21 +21,33 @@
import os
def _in_source_tree():
+ """Check whether the script is being run from the source dir. """
return os.path.exists("%s/../../../samba4-skip" % os.path.dirname(__file__))
+
# When running, in-tree, make sure bin/python is in the PYTHONPATH
if _in_source_tree():
import sys
- dir = os.path.dirname(__file__)
- sys.path.append("%s/../../../bin/python" % os.path.dirname(__file__))
+ srcdir = "%s/../../.." % os.path.dirname(__file__)
+ sys.path.append("%s/bin/python" % srcdir)
+ default_ldb_modules_dir = "%s/bin/modules/ldb" % srcdir
+
import misc
import ldb
ldb.ldb.set_credentials = misc.ldb_set_credentials
+#FIXME: ldb.ldb.set_session_info = misc.ldb_set_session_info
+ldb.ldb.set_loadparm = misc.ldb_set_loadparm
-def Ldb(url, session_info=None, credentials=None, modules_dir=None):
+def Ldb(url, session_info=None, credentials=None, modules_dir=None, lp=None):
"""Open a Samba Ldb file.
+ :param url: LDB Url to open
+ :param session_info: Optional session information
+ :param credentials: Optional credentials, defaults to anonymous.
+ :param modules_dir: Modules directory, automatically set if not specified.
+ :param lp: Loadparm object, optional.
+
This is different from a regular Ldb file in that the Samba-specific
modules-dir is used by default and that credentials and session_info
can be passed through (required by some modules).
@@ -43,12 +55,17 @@ def Ldb(url, session_info=None, credentials=None, modules_dir=None):
import ldb
ret = ldb.Ldb()
if modules_dir is None:
- modules_dir = os.path.join(os.getcwd(), "bin", "modules", "ldb")
- ret.set_modules_dir(modules_dir)
+ modules_dir = default_ldb_modules_dir
+ if modules_dir is not None:
+ ret.set_modules_dir(modules_dir)
def samba_debug(level,text):
print "%d %s" % (level, text)
- ldb_set_opaque("credentials", credentials)
- ret.set_opaque("sessionInfo", session_info)
+ if credentials is not None:
+ ldb.set_credentials(credentials)
+ if session_info is not None:
+ ldb.set_session_info(session_info)
+ if lp is not None:
+ ldb.set_loadparm(lp)
#ret.set_debug(samba_debug)
ret.connect(url)
return ret