summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKirill Smelkov <kirr@landau.phys.spbu.ru>2010-09-19 13:53:32 +0400
committerRusty Russell <rusty@rustcorp.com.au>2010-10-07 15:11:24 +1030
commitf1a720f08f48386e06f7cf7ddfd9175bf039a54c (patch)
treefde7efa3afd08aef71d8cc839cb4d451ba228532
parent7b88df14e0a947c6f058ad80e7ca3479fe3e408f (diff)
downloadsamba-f1a720f08f48386e06f7cf7ddfd9175bf039a54c.tar.gz
samba-f1a720f08f48386e06f7cf7ddfd9175bf039a54c.tar.xz
samba-f1a720f08f48386e06f7cf7ddfd9175bf039a54c.zip
pytdb: Add support for tdb_transaction_prepare_commit()
Cc: 597386@bugs.debian.org Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru> Signed-off-by: Jelmer Vernooij <jelmer@samba.org> (This used to be ctdb commit fd16bcc1434841d84fdf78f80163c97c0b52b3fe)
-rw-r--r--ctdb/lib/tdb/pytdb.c10
-rw-r--r--ctdb/lib/tdb/python/tests/simple.py8
2 files changed, 18 insertions, 0 deletions
diff --git a/ctdb/lib/tdb/pytdb.c b/ctdb/lib/tdb/pytdb.c
index 303c7ffd89..e20c79aa8f 100644
--- a/ctdb/lib/tdb/pytdb.c
+++ b/ctdb/lib/tdb/pytdb.c
@@ -112,6 +112,13 @@ static PyObject *obj_transaction_commit(PyTdbObject *self)
Py_RETURN_NONE;
}
+static PyObject *obj_transaction_prepare_commit(PyTdbObject *self)
+{
+ int ret = tdb_transaction_prepare_commit(self->ctx);
+ PyErr_TDB_ERROR_IS_ERR_RAISE(ret, self->ctx);
+ Py_RETURN_NONE;
+}
+
static PyObject *obj_transaction_start(PyTdbObject *self)
{
int ret = tdb_transaction_start(self->ctx);
@@ -351,6 +358,9 @@ static PyMethodDef tdb_object_methods[] = {
{ "transaction_commit", (PyCFunction)obj_transaction_commit, METH_NOARGS,
"S.transaction_commit() -> None\n"
"Commit the currently active transaction." },
+ { "transaction_prepare_commit", (PyCFunction)obj_transaction_prepare_commit, METH_NOARGS,
+ "S.transaction_prepare_commit() -> None\n"
+ "Prepare to commit the currently active transaction" },
{ "transaction_start", (PyCFunction)obj_transaction_start, METH_NOARGS,
"S.transaction_start() -> None\n"
"Start a new transaction." },
diff --git a/ctdb/lib/tdb/python/tests/simple.py b/ctdb/lib/tdb/python/tests/simple.py
index 3dc2f033a9..0dae96e4dd 100644
--- a/ctdb/lib/tdb/python/tests/simple.py
+++ b/ctdb/lib/tdb/python/tests/simple.py
@@ -111,6 +111,14 @@ class SimpleTdbTests(TestCase):
self.tdb.transaction_commit()
self.assertEquals("1", self.tdb["bloe"])
+ def test_transaction_prepare_commit(self):
+ self.tdb["bloe"] = "2"
+ self.tdb.transaction_start()
+ self.tdb["bloe"] = "1"
+ self.tdb.transaction_prepare_commit()
+ self.tdb.transaction_commit()
+ self.assertEquals("1", self.tdb["bloe"])
+
def test_iterator(self):
self.tdb["bloe"] = "2"
self.tdb["bla"] = "hoi"