diff options
Diffstat (limited to 'source4/scripting/python')
-rw-r--r-- | source4/scripting/python/pyglue.c | 35 | ||||
-rw-r--r-- | source4/scripting/python/samba/__init__.py | 4 |
2 files changed, 39 insertions, 0 deletions
diff --git a/source4/scripting/python/pyglue.c b/source4/scripting/python/pyglue.c index c9e8f1414e..136b121bc0 100644 --- a/source4/scripting/python/pyglue.c +++ b/source4/scripting/python/pyglue.c @@ -522,6 +522,39 @@ static PyObject *py_samdb_ntds_invocation_id(PyObject *self, PyObject *args) } +static PyObject *py_samdb_ntds_objectGUID(PyObject *self, PyObject *args) +{ + PyObject *py_ldb, *result; + struct ldb_context *ldb; + TALLOC_CTX *mem_ctx; + const struct GUID *guid; + + mem_ctx = talloc_new(NULL); + if (mem_ctx == NULL) { + PyErr_NoMemory(); + return NULL; + } + + if (!PyArg_ParseTuple(args, "O", &py_ldb)) { + talloc_free(mem_ctx); + return NULL; + } + + PyErr_LDB_OR_RAISE(py_ldb, ldb); + + guid = samdb_ntds_objectGUID(ldb); + if (guid == NULL) { + PyErr_SetStringError("Failed to find NTDS GUID"); + talloc_free(mem_ctx); + return NULL; + } + + result = PyString_FromString(GUID_string(mem_ctx, guid)); + talloc_free(mem_ctx); + return result; +} + + static PyObject *py_samdb_server_site_name(PyObject *self, PyObject *args) { PyObject *py_ldb, *result; @@ -650,6 +683,8 @@ static PyMethodDef py_misc_methods[] = { "get uSNHighest and uSNUrgent from the partition @REPLCHANGED"}, { "samdb_ntds_invocation_id", (PyCFunction)py_samdb_ntds_invocation_id, METH_VARARGS, "get the NTDS invocation ID GUID as a string"}, + { "samdb_ntds_objectGUID", (PyCFunction)py_samdb_ntds_objectGUID, METH_VARARGS, + "get the NTDS objectGUID as a string"}, { "samdb_server_site_name", (PyCFunction)py_samdb_server_site_name, METH_VARARGS, "get the server site name as a string"}, { "interface_ips", (PyCFunction)py_interface_ips, METH_VARARGS, diff --git a/source4/scripting/python/samba/__init__.py b/source4/scripting/python/samba/__init__.py index b2b7dcecb4..3544c49459 100644 --- a/source4/scripting/python/samba/__init__.py +++ b/source4/scripting/python/samba/__init__.py @@ -296,6 +296,10 @@ class Ldb(ldb.Ldb): "Get the invocation_id id" return glue.samdb_ntds_invocation_id(self) + def get_ntds_GUID(self): + "Get the NTDS objectGUID" + return glue.samdb_ntds_objectGUID(self) + def server_site_name(self): "Get the server site name" return glue.samdb_server_site_name(self) |