From ef87b4e4f10eb7d5974cb0e0861648d537153a00 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Thu, 9 Aug 2012 14:23:12 +1000 Subject: [PATCH] s4-pydsdb: Provide control of if we should write index attributes when reloading a schema This allows us to carefully control the loading of the schema. Andrew Bartlett --- source4/dsdb/pydsdb.c | 6 ++++-- source4/scripting/python/samba/samdb.py | 8 ++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/source4/dsdb/pydsdb.c b/source4/dsdb/pydsdb.c index 355804943c8..9023d69054b 100644 --- a/source4/dsdb/pydsdb.c +++ b/source4/dsdb/pydsdb.c @@ -873,7 +873,9 @@ static PyObject *py_dsdb_set_schema_from_ldb(PyObject *self, PyObject *args) struct ldb_context *from_ldb; struct dsdb_schema *schema; int ret; - if (!PyArg_ParseTuple(args, "OO", &py_ldb, &py_from_ldb)) + char write_attributes = true; + if (!PyArg_ParseTuple(args, "OO|b", + &py_ldb, &py_from_ldb, &write_attributes)) return NULL; PyErr_LDB_OR_RAISE(py_ldb, ldb); @@ -886,7 +888,7 @@ static PyObject *py_dsdb_set_schema_from_ldb(PyObject *self, PyObject *args) return NULL; } - ret = dsdb_reference_schema(ldb, schema, true); + ret = dsdb_reference_schema(ldb, schema, write_attributes); PyErr_LDB_ERROR_IS_ERR_RAISE(py_ldb_get_exception(), ret, ldb); Py_RETURN_NONE; diff --git a/source4/scripting/python/samba/samdb.py b/source4/scripting/python/samba/samdb.py index 7451b6c6245..3355e9a5898 100644 --- a/source4/scripting/python/samba/samdb.py +++ b/source4/scripting/python/samba/samdb.py @@ -608,11 +608,11 @@ accountExpires: %u def load_partition_usn(self, base_dn): return dsdb._dsdb_load_partition_usn(self, base_dn) - def set_schema(self, schema): - self.set_schema_from_ldb(schema.ldb) + def set_schema(self, schema, write_attributes=True): + self.set_schema_from_ldb(schema.ldb, write_attributes=write_attributes) - def set_schema_from_ldb(self, ldb_conn): - dsdb._dsdb_set_schema_from_ldb(self, ldb_conn) + def set_schema_from_ldb(self, ldb_conn, write_attributes=True): + dsdb._dsdb_set_schema_from_ldb(self, ldb_conn, write_attributes) def dsdb_DsReplicaAttribute(self, ldb, ldap_display_name, ldif_elements): '''convert a list of attribute values to a DRSUAPI DsReplicaAttribute''' -- 2.11.4.GIT