From 5bf12e101aa729619758c38af5c682b2cd06ea70 Mon Sep 17 00:00:00 2001 From: Kamen Mazdrashki Date: Thu, 22 Apr 2010 02:55:03 +0300 Subject: Revert "s4/dsdb: Set schemaInfo attribute value during provisioning" This reverts commit 8149094eddebd9a0e8b7c123c2ed54d00164bb26. Windows implementation does not set schemaInfo attribute value until first Schema update request. This way, newly provisioned forest returns no schemaInfo value. I think it won't be bad for us to have this value preset, but I want to mimic Win AD behavior as close as possible. --- source4/dsdb/schema/schema_info_attr.c | 49 ----------------------------- source4/scripting/python/pyglue.c | 26 --------------- source4/scripting/python/samba/__init__.py | 3 -- source4/scripting/python/samba/provision.py | 2 -- 4 files changed, 80 deletions(-) diff --git a/source4/dsdb/schema/schema_info_attr.c b/source4/dsdb/schema/schema_info_attr.c index 132c72a376..855bc6f08c 100644 --- a/source4/dsdb/schema/schema_info_attr.c +++ b/source4/dsdb/schema/schema_info_attr.c @@ -351,55 +351,6 @@ WERROR dsdb_schema_info_create(struct ldb_context *ldb, bool check_invocation_id } -/** - * - * @param ldb - * @param schema - * @return - */ -WERROR dsdb_schema_info_reset(struct ldb_context *ldb, struct dsdb_schema *schema) -{ - int ldb_err; - WERROR werr; - DATA_BLOB blob; - struct dsdb_schema_info *schema_info; - struct ldb_message *msg; - TALLOC_CTX *temp_ctx; - - temp_ctx = talloc_new(ldb); - W_ERROR_HAVE_NO_MEMORY(temp_ctx); - - /* create default schemaInfo value */ - werr = dsdb_schema_info_create(ldb, true, temp_ctx, &schema_info); - W_ERROR_NOT_OK_GOTO(werr, DONE); - - /* serialize schemaInfo to be stored in LDB and schema cache */ - werr = dsdb_blob_from_schema_info(schema_info, temp_ctx, &blob); - W_ERROR_NOT_OK_GOTO(werr, DONE); - - /* store initial schemaInfo in DB */ - werr = _dsdb_schema_info_write_prepare(ldb, &blob, temp_ctx, &msg); - W_ERROR_NOT_OK_GOTO(werr, DONE); - - ldb_err = dsdb_modify(ldb, msg, 0); - if (ldb_err != 0) { - DEBUG(0,("dsdb_module_schema_info_blob_write: dsdb_replace failed: %s (%s)\n", - ldb_strerror(ldb_err), - ldb_errstring(ldb))); - werr = WERR_INTERNAL_DB_ERROR; - goto DONE; - } - - /* update dsdb_schema cache */ - talloc_free(discard_const(schema->schema_info)); - schema->schema_info = data_blob_hex_string_upper(schema, &blob); - -DONE: - talloc_free(temp_ctx); - return werr; -} - - /** * Increments schemaInfo revision and save it to DB * setting our invocationID in the process diff --git a/source4/scripting/python/pyglue.c b/source4/scripting/python/pyglue.c index a80dedc717..f085714635 100644 --- a/source4/scripting/python/pyglue.c +++ b/source4/scripting/python/pyglue.c @@ -159,30 +159,6 @@ static PyObject *py_dsdb_write_prefixes_from_schema_to_ldb(PyObject *self, PyObj Py_RETURN_NONE; } -static PyObject *py_dsdb_schema_info_reset(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, NULL); - if (!schema) { - PyErr_SetString(PyExc_RuntimeError, "Failed to set find a schema on ldb!\n"); - return NULL; - } - - result = dsdb_schema_info_reset(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; @@ -277,8 +253,6 @@ static PyMethodDef py_misc_methods[] = { NULL }, { "dsdb_write_prefixes_from_schema_to_ldb", (PyCFunction)py_dsdb_write_prefixes_from_schema_to_ldb, METH_VARARGS, NULL }, - { "dsdb_schema_info_reset", (PyCFunction)py_dsdb_schema_info_reset, METH_VARARGS, - "Reset schemaInfo value to default for a new Forest" }, { "dsdb_set_schema_from_ldb", (PyCFunction)py_dsdb_set_schema_from_ldb, METH_VARARGS, NULL }, { "set_debug_level", (PyCFunction)py_set_debug_level, METH_VARARGS, diff --git a/source4/scripting/python/samba/__init__.py b/source4/scripting/python/samba/__init__.py index 67aac86959..dcb80a7e5d 100644 --- a/source4/scripting/python/samba/__init__.py +++ b/source4/scripting/python/samba/__init__.py @@ -286,9 +286,6 @@ class Ldb(_Ldb): def write_prefixes_from_schema(self): _glue.dsdb_write_prefixes_from_schema_to_ldb(self) - def set_schema_info(self): - _glue.dsdb_schema_info_reset(self) - def convert_schema_to_openldap(self, target, mapping): return dsdb.dsdb_convert_schema_to_openldap(self, target, mapping) diff --git a/source4/scripting/python/samba/provision.py b/source4/scripting/python/samba/provision.py index 8e79a8c1e4..fa2dabe5d4 100644 --- a/source4/scripting/python/samba/provision.py +++ b/source4/scripting/python/samba/provision.py @@ -946,8 +946,6 @@ def setup_samdb(path, setup_path, session_info, provision_backend, lp, message("Setting up sam.ldb schema") samdb.add_ldif(schema.schema_dn_add, controls=["relax:0"]) samdb.modify_ldif(schema.schema_dn_modify) - # set schemaInfo to defalt value for a new Forest - samdb.set_schema_info() samdb.write_prefixes_from_schema() samdb.add_ldif(schema.schema_data, controls=["relax:0"]) setup_add_ldif(samdb, setup_path("aggregate_schema.ldif"), -- cgit