summaryrefslogtreecommitdiff
path: root/src/python-systemd
AgeCommit message (Collapse)Author
2013-04-17sd-messages.h: add new bootchart message idZbigniew Jędrzejewski-Szmek
2013-04-17Report about syntax errors with metadataZbigniew Jędrzejewski-Szmek
The information about the unit for which files are being parsed is passed all the way down. This way messages land in the journal with proper UNIT=... or USER_UNIT=... attribution. 'systemctl status' and 'journalctl -u' not displaying those messages has been a source of confusion for users, since the journal entry for a misspelt setting was often logged quite a bit earlier than the failure to start a unit. Based-on-a-patch-by: Oleksii Shevchuk <alxchk@gmail.com>
2013-04-17python-systemd: Reader return special fields and _Reader changesSteven Hiscocks
Changes to _Reader make it match closer to C API, by removing `get_next` and `get_previous`. A `get_all` method added, which returns dictionary of fields using C API SD_JOURNAL_FOREACH_DATA macro, which can be used in conjunction with `next`. _Reader `get`, `next`, `get_{realtime,monotonic,cursor}` and new `previous` methods are made private. This is so the traversal and getting of journal fields can be made transparent in the python interface. Reader now solely implements `get_next` and `get_previous`, returning a standard dictionary (future: other mapping types?) with all standard and special fields through the converters. This makes the output the same as journalctl json/export format output. Iterator methods also moved to Reader, as they do not function as intend with changes to _Reader. These changes also mean that more optimised journal interfaces can be made more easily from _Reader, by avoiding getting of unrequired fields by using the `_get` method, and avoiding field conversions.
2013-04-16systemd-python: export new sd_journal_{process,get_events,get_timeout}Zbigniew Jędrzejewski-Szmek
get_timeout_ms is added as a convenience function, since it is abysmally hard to call clock_gettime() in Python versions lower than 3.3. And even for Python 3.3 users it saves a few lines.
2013-04-14systemd-python: fix formatting in docstringZbigniew Jędrzejewski-Szmek
2013-04-06systemd-python: fix wait bugSteven Hiscocks
2013-04-05Use initalization instead of explicit zeroingZbigniew Jędrzejewski-Szmek
Before, we would initialize many fields twice: first by filling the structure with zeros, and then a second time with the real values. We can let the compiler do the job for us, avoiding one copy. A downside of this patch is that text gets slightly bigger. This is because all zero() calls are effectively inlined: $ size build/.libs/systemd text data bss dec hex filename before 897737 107300 2560 1007597 f5fed build/.libs/systemd after 897873 107300 2560 1007733 f6075 build/.libs/systemd … actually less than 1‰. A few asserts that the parameter is not null had to be removed. I don't think this changes much, because first, it is quite unlikely for the assert to fail, and second, an immediate SEGV is almost as good as an assert.
2013-03-21systemd-python: allow retrieval of single fieldsZbigniew Jędrzejewski-Szmek
This can give huge efficiency gains, e.g. if only MESSAGE is required and all other fields can be ignored.
2013-03-21systemd-python: split out realtime and monotonic into separate functionsZbigniew Jędrzejewski-Szmek
This matches the C API more closely, and also enables the user to get just partial information, should she desire to do so. Functions names in error messages are modified to not include the class name, because Python uses just the function name into functions declared as METH_NOARGS, and error messages were inconsistent.
2013-03-21systemd-python: implement _Reader.test_cursorZbigniew Jędrzejewski-Szmek
Getting the cursor is split out from .get_next() into .get_cursor(). This mirrors the C API more closely, and also makes things a bit faster if the cursor is not needed.
2013-03-21systemd-python: cleanup up usec_t handlingZbigniew Jędrzejewski-Szmek
The behaviour wrt. seconds vs. microseconds was inconsistent. Now _Reader always uses native units (us), while Reader always uses seconds and accepts both floats and ints. This way the conversion is always done in the Python layer, and the lower level API allows access to the journal API without the potentially lossy conversion between double and uint64_t.
2013-03-21systemd-python: export sd_journal_get_usageZbigniew Jędrzejewski-Szmek
2013-03-20Remove some unused variablesZbigniew Jędrzejewski-Szmek
2013-03-19systemd-python: small cleanupsZbigniew Jędrzejewski-Szmek
- separate methods with two empty lines for clarity - avoid malloc(0) by specyfing private data size as -1 - add method name in error messages
2013-03-19systemd-python: add journal.get_catalog()Zbigniew Jędrzejewski-Szmek
This one wraps sd_journal_get_catalog_from_message_id. Thanks to Python namespacing, we can stick to a shorter name.
2013-03-19systemd-python: add _Reader.get_catalog()Zbigniew Jędrzejewski-Szmek
This one wraps sd_journaal_get_catalog.
2013-03-19systemd-python: add _Reader.closed attributeZbigniew Jędrzejewski-Szmek
This should make the file interface of _Reader complete.
2013-03-18systemd-python: allow Reader to be used as a context managerZbigniew Jędrzejewski-Szmek
2013-03-15systemd-python: add systemd.daemon wrapping sd-daemonZbigniew Jędrzejewski-Szmek
Please see the documentation (e.g. pydoc3 systemd.daemon) for full description. As usual, systemd._daemon wraps the raw interface, while systemd.daemon provides the more pythonic API. sd_listen_fds, sd_booted, sd_is_fifo, sd_is_socket, sd_is_socket_unix, sd_is_socket_inet, sd_is_mq, and SD_LISTEN_FDS_START are currently wrapped.
2013-03-12man,html: say 'systemd 198' in the headerZbigniew Jędrzejewski-Szmek
This should help readers of the man or HTML pages know if the documentation is out of date. An alternative to use a date generated from 'git log' was considered, but since we try to keep user visible documentation up to date, showing the project version should be enough.
2013-03-09python/docs: use the same links on top as in man pagesZbigniew Jędrzejewski-Szmek
I forgot to commit the layout file, because it was gitignored. Fixed now.
2013-03-09html: make python docs look more like the restZbigniew Jędrzejewski-Szmek
The result is ugly enough, I hope, to motivate someone with design skills to fix it.
2013-03-09systemd-python: provide version info to sphinxZbigniew Jędrzejewski-Szmek
2013-03-07systemd-python: fix segfault on double closeZbigniew Jędrzejewski-Szmek
2013-03-07systemd-python: fix typosZbigniew Jędrzejewski-Szmek
2013-03-07systemd-python: update documentation for new systemd-journal groupZbigniew Jędrzejewski-Szmek
2013-03-07systemd-python: refuse path and flags together in __init__Zbigniew Jędrzejewski-Szmek
It's better to explictly check, instead of just documenting it. The return value from init is changed from 1 to -1 on error. Python seems to ignore 1 every second time. Looks like a bug in Python, but the return value doesn't seem to be documented anywhere, and -1 works as expected... so let's just use that.
2013-03-07systemd-python: export sd_j_get_fd, sd_j_reliable_fd, sd_j_closeZbigniew Jędrzejewski-Szmek
sd_journal_get_fd(j) is called j.fileno(), for compatiblity with Python conventions for file-like objects. More importantly, those new .seek_head() and .seek_tail() do not call .get_next(). This is better, if one wants to skip before retrieving an entry.
2013-03-07systemd-python: split .seek() into .seek_head() and .seek_tail()Zbigniew Jędrzejewski-Szmek
This way python code follows the original interface more closely. Also, .seek(0, journal.SEEK_END) was just to much to type.
2013-03-07systemd-python: catch only ValueErrors in conversion codeZbigniew Jędrzejewski-Szmek
First of all, 'try: ... except: ...' (with no exception specified) is always a no-no, since it catches all BaseExceptions, which includes ^C and other stuff which should almost never be caught. Now the conversion is stricter, and only one conversion is attempted, and only a ValueEror is caught. It seems reasonable to catch ValueErrors, since the entries in the journal are not verified, and any erroneous application might log a field which cannot be converted. The consumer of events must only check if a field is an instance of bytes and can otherwise assume that the conversion was performed correctly. Order of arguments in Reader.__init__ has been changed to match order in _Reader.__init__. Conversions have been updated to work under Python 2 and 3.
2013-03-05systemd-python: fix error check in _Reader.wait()Zbigniew Jędrzejewski-Szmek
2013-03-01systemd-python: add missing check for return of PyDict_SetItem in _reader.cLukas Nykryn
2013-02-28python-systemd: rename Journal to ReaderZbigniew Jędrzejewski-Szmek
It seems inevitable that we'll also grow a writing interface, and then it'll be cumbersome to have a "Journal" for reading, and a "Writer" for writing.
2013-02-28systemd-python: return both parts of sd_journal_get_monotonic_usecZbigniew Jędrzejewski-Szmek
In Python 3, a named tuple is used. In Python 2, a simple tuple is used. In either case, the pair is (timestamp, bootid).
2013-02-28python-systemd: check all errors and use automatic cleanupZbigniew Jędrzejewski-Szmek
__REALTIME_TIMESTAMP and __MONOTONIC_TIMESTAMP return ints. It doesn't make sense to convert to string, just to convert back to a number later on. Also try to follow systemd rules for indentation.
2013-02-28systemd-python: hide ChainMap importZbigniew Jędrzejewski-Szmek
2013-02-28systemd-python: document attributesZbigniew Jędrzejewski-Szmek
In id128 it would be better to add everything automatically, but sphinx cannot do this right now.
2013-02-28systemd-python: use PyModule_AddObject in id128Zbigniew Jędrzejewski-Szmek
2013-02-28systemd-python: polish the docstringsZbigniew Jędrzejewski-Szmek
2013-02-22systemd-python: indenation and style tweaksZbigniew Jędrzejewski-Szmek
2013-02-22systemd-python: downgrade _reader.c to C89Zbigniew Jędrzejewski-Szmek
2013-02-22systemd-python: add casts and fix unused variable warnings in _readerZbigniew Jędrzejewski-Szmek
2013-02-22systemd-python: wrap some python differences using macrosZbigniew Jędrzejewski-Szmek
2013-02-22systemd-python: introduce error setting helperZbigniew Jędrzejewski-Szmek
2013-02-22systemd-python: Added doc string for JournalSteven Hiscocks
2013-02-22systemd-python: Journal convert_unicode exception handling changeSteven Hiscocks
Rather than catch all, is now limited to UnicodeDecodeError
2013-02-22systemd-python: add Journal method to add MESSAGE_ID matchSteven Hiscocks
2013-02-22systemd-python: fix memory leak in _reader and minor bugsSteven Hiscocks
iternext now checks for error from get_next, and changed a DECREF to XDECREF rather than NULL check
2013-02-22systemd-python: update Journal python docstringsSteven Hiscocks
2013-02-22systemd-python: tidy up import names in journalSteven Hiscocks