s4:provison Add prefixes to ldb using same code a later modify will use
[ira/wip.git] / source4 / scripting / python / pyglue.c
index f5694e162c1be814d907f69f31c128d15dbef1e1..55ba5c37fc70331cfe9a0c00761b326bfe76128c 100644 (file)
@@ -344,6 +344,30 @@ static PyObject *py_dsdb_convert_schema_to_openldap(PyObject *self, PyObject *ar
        return ret;
 }
 
+static PyObject *py_dsdb_write_prefixes_from_schema_to_ldb(PyObject *self, PyObject *args)
+{
+       PyObject *py_ldb;
+       struct ldb_context *ldb;
+       WERROR result;
+       struct dsdb_schema *schema;
+
+       if (!PyArg_ParseTuple(args, "O", &py_ldb))
+               return NULL;
+
+       PyErr_LDB_OR_RAISE(py_ldb, ldb);
+
+       schema = dsdb_get_schema(ldb);
+       if (!schema) {
+               PyErr_SetString(PyExc_RuntimeError, "Failed to set find a schema on ldb!\n");
+               return NULL;
+       }
+
+       result = dsdb_write_prefixes_from_schema_to_ldb(NULL, ldb, schema);
+       PyErr_WERROR_IS_ERR_RAISE(result);
+
+       Py_RETURN_NONE;
+}
+
 static PyObject *py_dsdb_set_schema_from_ldb(PyObject *self, PyObject *args)
 {
        PyObject *py_ldb;
@@ -424,6 +448,8 @@ static PyMethodDef py_misc_methods[] = {
                NULL },
        { "dsdb_set_schema_from_ldif", (PyCFunction)py_dsdb_set_schema_from_ldif, METH_VARARGS,
                NULL },
+       { "dsdb_write_prefixes_from_schema_to_ldb", (PyCFunction)py_dsdb_write_prefixes_from_schema_to_ldb, METH_VARARGS,
+               NULL },
        { "dsdb_set_schema_from_ldb", (PyCFunction)py_dsdb_set_schema_from_ldb, METH_VARARGS,
                NULL },
        { "dsdb_convert_schema_to_openldap", (PyCFunction)py_dsdb_convert_schema_to_openldap, METH_VARARGS,