From: Zbigniew Jędrzejewski-Szmek Date: Fri, 15 Mar 2013 22:10:51 +0000 (-0400) Subject: systemd-python: add _Reader.get_catalog() X-Git-Tag: v199~151 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=6808412dad4a8c4379dda4453658ec756a0542b9 systemd-python: add _Reader.get_catalog() This one wraps sd_journaal_get_catalog. --- diff --git a/TODO b/TODO index 715dd9dbc..750540fb1 100644 --- a/TODO +++ b/TODO @@ -581,7 +581,6 @@ Features: * drop cap bounding set in readahead and other services * systemd-python: - - export sd_journal_get_catalog (in systemd.journal._reader) - export sd_journal_get_catalog_for_message_id (in systemd.id128) - allow reading of only select fields in systemd.journal._reader.Reader - export sd_journal_test_cursor in systemd.journal._reader.Reader diff --git a/src/python-systemd/_reader.c b/src/python-systemd/_reader.c index 67358e306..a257757e1 100644 --- a/src/python-systemd/_reader.c +++ b/src/python-systemd/_reader.c @@ -634,6 +634,29 @@ static PyObject* Reader_query_unique(Reader *self, PyObject *args) return value_set; } + +PyDoc_STRVAR(Reader_get_catalog__doc__, + "get_catalog() -> str\n\n" + "Retrieve a message catalog entry for the current journal entry.\n" + "Wraps man:sd_journal_get_catalog(3)."); +static PyObject* Reader_get_catalog(Reader *self, PyObject *args) +{ + int r; + char _cleanup_free_ *msg = NULL; + + assert(self); + assert(!args); + + Py_BEGIN_ALLOW_THREADS + r = sd_journal_get_catalog(self->j, &msg); + Py_END_ALLOW_THREADS + if (set_error(r, NULL, NULL)) + return NULL; + + return unicode_FromString(msg); +} + + PyDoc_STRVAR(data_threshold__doc__, "Threshold for field size truncation in bytes.\n\n" "Fields longer than this will be truncated to the threshold size.\n" @@ -706,6 +729,7 @@ static PyMethodDef Reader_methods[] = { {"wait", (PyCFunction) Reader_wait, METH_VARARGS, Reader_wait__doc__}, {"seek_cursor", (PyCFunction) Reader_seek_cursor, METH_VARARGS, Reader_seek_cursor__doc__}, {"query_unique", (PyCFunction) Reader_query_unique, METH_VARARGS, Reader_query_unique__doc__}, + {"get_catalog", (PyCFunction) Reader_get_catalog, METH_NOARGS, Reader_get_catalog__doc__}, {NULL} /* Sentinel */ };