1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00

s4-rodc: Fix provision warnings by creating ntds objectGUID in provision

This commit is contained in:
Anatoliy Atanasov 2010-05-10 13:52:27 +03:00
parent 83736066a3
commit c3cbb846d0
3 changed files with 32 additions and 1 deletions

View File

@ -309,6 +309,26 @@ static PyObject *py_samdb_ntds_objectGUID(PyObject *self, PyObject *args)
return result;
}
static PyObject *py_dsdb_set_ntds_objectGUID(PyObject *self, PyObject *args)
{
PyObject *py_ldb, *py_guid;
bool ret;
struct GUID guid;
struct ldb_context *ldb;
if (!PyArg_ParseTuple(args, "OO", &py_ldb, &py_guid))
return NULL;
PyErr_LDB_OR_RAISE(py_ldb, ldb);
GUID_from_string(PyString_AsString(py_guid), &guid);
ret = samdb_set_ntds_objectGUID(ldb, &guid);
if (!ret) {
PyErr_SetString(PyExc_RuntimeError, "set_ntds_objectGUID failed");
return NULL;
}
Py_RETURN_NONE;
}
static PyObject *py_dsdb_set_global_schema(PyObject *self, PyObject *args)
{
PyObject *py_ldb;
@ -399,6 +419,9 @@ static PyMethodDef py_dsdb_methods[] = {
NULL },
{ "samdb_ntds_objectGUID", (PyCFunction)py_samdb_ntds_objectGUID,
METH_VARARGS, "get the NTDS objectGUID as a string"},
{ "dsdb_set_ntds_objectGUID",
(PyCFunction)py_dsdb_set_ntds_objectGUID, METH_VARARGS,
NULL },
{ "dsdb_set_global_schema", (PyCFunction)py_dsdb_set_global_schema,
METH_VARARGS, NULL },
{ "dsdb_load_partition_usn", (PyCFunction)py_dsdb_load_partition_usn,

View File

@ -840,7 +840,7 @@ def setup_samdb(path, setup_path, session_info, provision_backend, lp,
names, message,
domainsid, domainguid, policyguid, policyguid_dc,
fill, adminpass, krbtgtpass,
machinepass, invocationid, dnspass, ntdsguid,
machinepass, invocationid, ntds_guid, dnspass, ntdsguid,
serverrole, dom_for_fun_level=None,
schema=None):
"""Setup a complete SAM Database.
@ -901,6 +901,7 @@ def setup_samdb(path, setup_path, session_info, provision_backend, lp,
samdb.set_domain_sid(str(domainsid))
samdb.set_invocation_id(invocationid)
samdb.set_ntds_GUID(ntds_guid)
samdb.set_ntds_settings_dn("CN=NTDS Settings,%s" % names.serverdn)
message("Adding DomainDN: %s" % names.domaindn)
@ -1228,6 +1229,8 @@ def provision(setup_dir, message, session_info,
if invocationid is None:
invocationid = str(uuid.uuid4())
ntds_guid = str(uuid.uuid4())
if not os.path.exists(paths.private_dir):
os.mkdir(paths.private_dir)
if not os.path.exists(os.path.join(paths.private_dir,"tls")):
@ -1321,6 +1324,7 @@ def provision(setup_dir, message, session_info,
fill=samdb_fill,
adminpass=adminpass, krbtgtpass=krbtgtpass,
invocationid=invocationid,
ntds_guid=ntds_guid,
machinepass=machinepass, dnspass=dnspass,
ntdsguid=ntdsguid, serverrole=serverrole,
dom_for_fun_level=dom_for_fun_level)

View File

@ -262,6 +262,10 @@ accountExpires: %u
"Get the NTDS objectGUID"
return dsdb.samdb_ntds_objectGUID(self)
def set_ntds_GUID(self, object_guid):
"Set the NTDS objectGUID"
return dsdb.dsdb_set_ntds_objectGUID(self, object_guid)
def server_site_name(self):
"Get the server site name"
return dsdb.samdb_server_site_name(self)