pyglue: added py_samdb_server_site_name()
authorAndrew Tridgell <tridge@samba.org>
Thu, 25 Feb 2010 07:35:01 +0000 (18:35 +1100)
committerAndrew Tridgell <tridge@samba.org>
Fri, 26 Feb 2010 02:59:17 +0000 (13:59 +1100)
source4/scripting/python/pyglue.c

index 03a39d498e4de8eced76dcce419146e48c269fc0..c9e8f1414eb1cbb60a81d049cd00ef2b99122787 100644 (file)
@@ -522,6 +522,33 @@ static PyObject *py_samdb_ntds_invocation_id(PyObject *self, PyObject *args)
 }
 
 
+static PyObject *py_samdb_server_site_name(PyObject *self, PyObject *args)
+{
+       PyObject *py_ldb, *result;
+       struct ldb_context *ldb;
+       const char *site;
+       TALLOC_CTX *mem_ctx = talloc_new(NULL);
+
+       if (!PyArg_ParseTuple(args, "O", &py_ldb)) {
+               talloc_free(mem_ctx);
+               return NULL;
+       }
+
+       PyErr_LDB_OR_RAISE(py_ldb, ldb);
+
+       site = samdb_server_site_name(ldb, mem_ctx);
+       if (site == NULL) {
+               PyErr_SetStringError("Failed to find server site");
+               talloc_free(mem_ctx);
+               return NULL;
+       }
+
+       result = PyString_FromString(site);
+       talloc_free(mem_ctx);
+       return result;
+}
+
+
 /*
   return the list of interface IPs we have configured
   takes an loadparm context, returns a list of IPs in string form
@@ -623,6 +650,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_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,
                "get interface IP address list"},
        { NULL }