diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/dsdb/pydsdb.c | 30 | ||||
-rw-r--r-- | source4/scripting/python/samba/samdb.py | 3 |
2 files changed, 33 insertions, 0 deletions
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) |