summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamen Mazdrashki <kamenim@samba.org>2010-04-22 02:55:03 +0300
committerKamen Mazdrashki <kamenim@samba.org>2010-04-29 04:54:05 +0300
commit5bf12e101aa729619758c38af5c682b2cd06ea70 (patch)
treecc6619ad301fe784bda2e8d622661cee3afbbb33
parent2bf23735fa9d50954086d09f2e3ebd32390e2fa9 (diff)
downloadsamba-5bf12e101aa729619758c38af5c682b2cd06ea70.tar.gz
samba-5bf12e101aa729619758c38af5c682b2cd06ea70.tar.bz2
samba-5bf12e101aa729619758c38af5c682b2cd06ea70.zip
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.
-rw-r--r--source4/dsdb/schema/schema_info_attr.c49
-rw-r--r--source4/scripting/python/pyglue.c26
-rw-r--r--source4/scripting/python/samba/__init__.py3
-rw-r--r--source4/scripting/python/samba/provision.py2
4 files changed, 0 insertions, 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
@@ -352,55 +352,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
* NOTE: this function should be called in a transaction
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"),