From 628fb1fbae2a9e3e8fc3add070bceb5557973029 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Thu, 16 Dec 2010 18:28:07 +0100 Subject: create_dump_dir: add base_dir_name parameter. This makes python wrappers more usable. src/report-python/test_full demonstrates how pyhton programs can run reporting now. Signed-off-by: Denys Vlasenko --- src/report-python/common.h | 1 + src/report-python/crash_dump.c | 25 ++++++++----- src/report-python/dump_dir.c | 79 ++++++++++++++++++++++++++++++---------- src/report-python/reportmodule.c | 3 +- src/report-python/run_event.c | 2 +- src/report-python/test_dd_create | 6 +++ src/report-python/test_full | 27 ++++++++++++++ 7 files changed, 112 insertions(+), 31 deletions(-) create mode 100755 src/report-python/test_full (limited to 'src/report-python') diff --git a/src/report-python/common.h b/src/report-python/common.h index 99c311cd..f77e5a31 100644 --- a/src/report-python/common.h +++ b/src/report-python/common.h @@ -29,6 +29,7 @@ extern PyTypeObject p_run_event_state_type; /* module-level functions */ PyObject *p_dd_opendir(PyObject *module, PyObject *args); PyObject *p_dd_create(PyObject *module, PyObject *args); +PyObject *p_delete_dump_dir(PyObject *pself, PyObject *args); /* python objects' struct defs */ typedef struct { diff --git a/src/report-python/crash_dump.c b/src/report-python/crash_dump.c index 63f390b2..e6ab966c 100644 --- a/src/report-python/crash_dump.c +++ b/src/report-python/crash_dump.c @@ -92,14 +92,19 @@ static PyObject *p_get_crash_data_item(PyObject *pself, PyObject *args) return Py_BuildValue("sI", ci->content, ci->flags); } -/* struct dump_dir *create_dump_dir(crash_data_t *crash_data); */ +/* struct dump_dir *create_dump_dir(crash_data_t *crash_data, const char *base_dir_name); */ static PyObject *p_create_dump_dir(PyObject *pself, PyObject *args) { p_crash_data *self = (p_crash_data*)pself; + const char *base_dir_name = NULL; + if (!PyArg_ParseTuple(args, "|s", &base_dir_name)) + { + return NULL; + } p_dump_dir *new_dd = PyObject_New(p_dump_dir, &p_dump_dir_type); if (!new_dd) return NULL; - struct dump_dir *dd = create_dump_dir(self->cd); + struct dump_dir *dd = create_dump_dir(self->cd, base_dir_name); if (!dd) { PyObject_Del((PyObject*)new_dd); @@ -115,9 +120,10 @@ static PyObject *p_create_dump_dir(PyObject *pself, PyObject *args) //}; static PyMethodDef p_crash_data_methods[] = { - { "add" , p_crash_data_add, METH_VARARGS, "Adds item to the crash data" }, - { "get" , p_get_crash_data_item, METH_VARARGS, "Gets the value of item indexed by the key" }, - { "create_dump_dir", p_create_dump_dir, METH_NOARGS, "Saves the crash_data to"LOCALSTATEDIR"/run/abrt/tmp--