Revert "s4/dsdb: Set schemaInfo attribute value during provisioning"
authorKamen Mazdrashki <kamenim@samba.org>
Wed, 21 Apr 2010 23:55:03 +0000 (02:55 +0300)
committerKamen Mazdrashki <kamenim@samba.org>
Thu, 29 Apr 2010 01:54:05 +0000 (04:54 +0300)
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
source4/scripting/python/pyglue.c
source4/scripting/python/samba/__init__.py
source4/scripting/python/samba/provision.py

index 132c72a376654b6e50a28e6416d4b80ef48ead78..855bc6f08c8bbc17150e9f6976f8a71ec9bf9a42 100644 (file)
@@ -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
index a80dedc717750f0d713b8fdd882899f0d7431757..f08571463526950402f6212a40ddd776c7610c5f 100644 (file)
@@ -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,
index 67aac869597e133f7220e89c21a446fca10925eb..dcb80a7e5d1f7e159b8d0c55eccf96ce67b7682a 100644 (file)
@@ -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)
 
index 8e79a8c1e44752a6d58a6e106b06e7262dead5db..fa2dabe5d476aac6593f78ebd7ef9a88b67aba2d 100644 (file)
@@ -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"),