summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2010-02-26 10:15:43 +1100
committerAndrew Tridgell <tridge@samba.org>2010-02-26 13:59:17 +1100
commitcb8d1e01f0b64f4a01ea101b8a0229f2085b744d (patch)
treecd8c841140573fc6fc7302daae7e6aede6fc4f68
parent390f7b535d9625beb9f203fdc2eb2890b69ed404 (diff)
downloadsamba-cb8d1e01f0b64f4a01ea101b8a0229f2085b744d.tar.gz
samba-cb8d1e01f0b64f4a01ea101b8a0229f2085b744d.tar.bz2
samba-cb8d1e01f0b64f4a01ea101b8a0229f2085b744d.zip
samdb: added get_ntds_GUID() method
-rw-r--r--source4/scripting/python/pyglue.c35
-rw-r--r--source4/scripting/python/samba/__init__.py4
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)