From 54e86d881d2955bae49bd87fe08e74bbfc86fd0e Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 9 Sep 2010 17:34:55 +1000 Subject: s4-pydsdb: expose samdb_partitions_dn() as get_partitions_dn() in python Pair-Programmed-With: Andrew Bartlett --- source4/dsdb/pydsdb.c | 30 ++++++++++++++++++++++++++++++ source4/scripting/python/samba/samdb.py | 3 +++ 2 files changed, 33 insertions(+) diff --git a/source4/dsdb/pydsdb.c b/source4/dsdb/pydsdb.c index ecf89b1d8c..5ba69d7388 100644 --- a/source4/dsdb/pydsdb.c +++ b/source4/dsdb/pydsdb.c @@ -505,6 +505,35 @@ static PyObject *py_dsdb_write_prefixes_from_schema_to_ldb(PyObject *self, PyObj } +static PyObject *py_dsdb_get_partitions_dn(PyObject *self, PyObject *args) +{ + struct ldb_context *ldb; + struct ldb_dn *dn; + PyObject *py_ldb, *ret; + TALLOC_CTX *tmp_ctx; + PyObject *mod; + + mod = PyImport_ImportModule("ldb"); + + if (!PyArg_ParseTuple(args, "O", &py_ldb)) + return NULL; + + PyErr_LDB_OR_RAISE(py_ldb, ldb); + + tmp_ctx = talloc_new(NULL); + + dn = samdb_partitions_dn(ldb, tmp_ctx); + + if (dn == NULL) { + talloc_free(tmp_ctx); + Py_RETURN_NONE; + } + ret = PyLdbDn_FromDn(dn); + talloc_free(tmp_ctx); + return ret; +} + + static PyMethodDef py_dsdb_methods[] = { { "_samdb_server_site_name", (PyCFunction)py_samdb_server_site_name, @@ -550,6 +579,7 @@ static PyMethodDef py_dsdb_methods[] = { NULL }, { "_dsdb_write_prefixes_from_schema_to_ldb", (PyCFunction)py_dsdb_write_prefixes_from_schema_to_ldb, METH_VARARGS, NULL }, + { "_dsdb_get_partitions_dn", (PyCFunction)py_dsdb_get_partitions_dn, METH_VARARGS, NULL }, { NULL } }; diff --git a/source4/scripting/python/samba/samdb.py b/source4/scripting/python/samba/samdb.py index cc82e53907..e2ac37a240 100644 --- a/source4/scripting/python/samba/samdb.py +++ b/source4/scripting/python/samba/samdb.py @@ -595,3 +595,6 @@ accountExpires: %u def write_prefixes_from_schema(self): dsdb._dsdb_write_prefixes_from_schema_to_ldb(self) + + def get_partitions_dn(self): + return dsdb._dsdb_get_partitions_dn(self) -- cgit