mirror of
https://github.com/samba-team/samba.git
synced 2025-08-03 04:22:09 +03:00
s4-python: Move load_partition_usn to dsdb module.
This commit is contained in:
@ -186,52 +186,6 @@ static PyObject *py_dsdb_set_schema_from_ldb(PyObject *self, PyObject *args)
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
static PyObject *py_dsdb_load_partition_usn(PyObject *self, PyObject *args)
|
||||
{
|
||||
PyObject *py_dn, *py_ldb, *result;
|
||||
struct ldb_dn *dn;
|
||||
uint64_t highest_uSN, urgent_uSN;
|
||||
struct ldb_context *ldb;
|
||||
TALLOC_CTX *mem_ctx;
|
||||
int ret;
|
||||
|
||||
mem_ctx = talloc_new(NULL);
|
||||
if (mem_ctx == NULL) {
|
||||
PyErr_NoMemory();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!PyArg_ParseTuple(args, "OO", &py_ldb, &py_dn)) {
|
||||
talloc_free(mem_ctx);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
PyErr_LDB_OR_RAISE(py_ldb, ldb);
|
||||
|
||||
if (!PyObject_AsDn(mem_ctx, py_dn, ldb, &dn)) {
|
||||
talloc_free(mem_ctx);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ret = dsdb_load_partition_usn(ldb, dn, &highest_uSN, &urgent_uSN);
|
||||
if (ret != LDB_SUCCESS) {
|
||||
char *errstr = talloc_asprintf(mem_ctx, "Failed to load partition uSN - %s", ldb_errstring(ldb));
|
||||
PyErr_SetString(PyExc_RuntimeError, errstr);
|
||||
talloc_free(mem_ctx);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
talloc_free(mem_ctx);
|
||||
|
||||
result = PyDict_New();
|
||||
|
||||
PyDict_SetItemString(result, "uSNHighest", PyInt_FromLong((uint64_t)highest_uSN));
|
||||
PyDict_SetItemString(result, "uSNUrgent", PyInt_FromLong((uint64_t)urgent_uSN));
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
return the list of interface IPs we have configured
|
||||
takes an loadparm context, returns a list of IPs in string form
|
||||
@ -302,8 +256,6 @@ static PyMethodDef py_misc_methods[] = {
|
||||
NULL },
|
||||
{ "set_debug_level", (PyCFunction)py_set_debug_level, METH_VARARGS,
|
||||
"set debug level" },
|
||||
{ "dsdb_load_partition_usn", (PyCFunction)py_dsdb_load_partition_usn, METH_VARARGS,
|
||||
"get uSNHighest and uSNUrgent from the partition @REPLCHANGED"},
|
||||
{ "interface_ips", (PyCFunction)py_interface_ips, METH_VARARGS,
|
||||
"get interface IP address list"},
|
||||
{ NULL }
|
||||
|
@ -267,3 +267,6 @@ accountExpires: %u
|
||||
def server_site_name(self):
|
||||
"Get the server site name"
|
||||
return dsdb.samdb_server_site_name(self)
|
||||
|
||||
def load_partition_usn(self, base_dn):
|
||||
return dsdb.dsdb_load_partition_usn(self, base_dn)
|
||||
|
Reference in New Issue
Block a user