Code

sysdb.git
8 years ago.gitignore: Ignore test-suite.log.
Sebastian Harl [Sat, 26 Apr 2014 21:17:50 +0000 (23:17 +0200)]
.gitignore: Ignore test-suite.log.

8 years agodbi utils: Use the new _r interface.
Sebastian Harl [Sat, 26 Apr 2014 21:14:11 +0000 (23:14 +0200)]
dbi utils: Use the new _r interface.

8 years agoMoved unit tests into t/unit/ subdirectory.
Sebastian Harl [Sat, 26 Apr 2014 20:42:47 +0000 (22:42 +0200)]
Moved unit tests into t/unit/ subdirectory.

8 years agoMerged branch 'master' of git://git.tokkee.org/sysdb.
Sebastian Harl [Fri, 25 Apr 2014 22:51:05 +0000 (00:51 +0200)]
Merged branch 'master' of git://git.tokkee.org/sysdb.

8 years agofrontend: Added destructors for dynamically allocated objects in the parser.
Sebastian Harl [Fri, 25 Apr 2014 22:14:37 +0000 (00:14 +0200)]
frontend: Added destructors for dynamically allocated objects in the parser.

This will make sure that the memory is freed in case of parse errors.

8 years agofrontend: Fixed deprecated %name-prefix syntax.
Sebastian Harl [Fri, 25 Apr 2014 22:05:28 +0000 (00:05 +0200)]
frontend: Fixed deprecated %name-prefix syntax.

8 years agofrontend: FETCH, LIST, LOOKUP are untyped tokens.
Sebastian Harl [Fri, 25 Apr 2014 22:04:33 +0000 (00:04 +0200)]
frontend: FETCH, LIST, LOOKUP are untyped tokens.

8 years agocore: Don't leak memory upon an error in the collector loop.
Sebastian Harl [Fri, 25 Apr 2014 14:11:11 +0000 (16:11 +0200)]
core: Don't leak memory upon an error in the collector loop.

8 years agocore: Don't leak memory when shutting down the collector loop.
Sebastian Harl [Fri, 25 Apr 2014 14:09:15 +0000 (16:09 +0200)]
core: Don't leak memory when shutting down the collector loop.

Instead, put the current collector object back into the list in oder to keep a
reference to it.

8 years agoconnection_test: Added a simple test for sdb_connection_accept().
Sebastian Harl [Fri, 25 Apr 2014 07:07:35 +0000 (09:07 +0200)]
connection_test: Added a simple test for sdb_connection_accept().

8 years agoconnection_test: Added first test for frontend connection handling.
Sebastian Harl [Thu, 24 Apr 2014 07:36:58 +0000 (09:36 +0200)]
connection_test: Added first test for frontend connection handling.

For now, testing a simple session startup.

8 years agofrontend: Reset the current command length on CONNECTION_IDLE.
Sebastian Harl [Thu, 24 Apr 2014 07:31:59 +0000 (09:31 +0200)]
frontend: Reset the current command length on CONNECTION_IDLE.

8 years agofrontend: Clear the error buffer when initializing a new command.
Sebastian Harl [Thu, 24 Apr 2014 07:20:19 +0000 (09:20 +0200)]
frontend: Clear the error buffer when initializing a new command.

8 years agoutils strbuf: Don't copy more than needed in sdb_strbuf_skip().
Sebastian Harl [Wed, 23 Apr 2014 21:39:58 +0000 (23:39 +0200)]
utils strbuf: Don't copy more than needed in sdb_strbuf_skip().

8 years agostrbuf_test: Added some more test-cases for sdb_strbuf_skip().
Sebastian Harl [Wed, 23 Apr 2014 21:39:41 +0000 (23:39 +0200)]
strbuf_test: Added some more test-cases for sdb_strbuf_skip().

8 years agofrontend: Always store errors in the error buffer.
Sebastian Harl [Wed, 23 Apr 2014 21:09:28 +0000 (23:09 +0200)]
frontend: Always store errors in the error buffer.

This allows to access the error from other parts of the code.

8 years agofrontend: Always reset the current command after handling it.
Sebastian Harl [Wed, 23 Apr 2014 21:08:19 +0000 (23:08 +0200)]
frontend: Always reset the current command after handling it.

That is, also reset it after an authentication error.

8 years agofrontend: Clear current command on authentication error.
Sebastian Harl [Wed, 23 Apr 2014 20:24:00 +0000 (22:24 +0200)]
frontend: Clear current command on authentication error.

8 years agostore_lookup_test: Dereference objects returned from the store.
Sebastian Harl [Wed, 23 Apr 2014 08:23:59 +0000 (10:23 +0200)]
store_lookup_test: Dereference objects returned from the store.

8 years agoparser: Don't leak memory when building nested matchers.
Sebastian Harl [Wed, 23 Apr 2014 08:22:59 +0000 (10:22 +0200)]
parser: Don't leak memory when building nested matchers.

8 years agobackends: Destroy dbi/unixsock clients on shutdown.
Sebastian Harl [Tue, 22 Apr 2014 22:13:50 +0000 (00:13 +0200)]
backends: Destroy dbi/unixsock clients on shutdown.

This would also be cleaned up when destroying the registered user data objects
but doing so on shutdown in much cleaner.

8 years agostore: Free old attribute values before storing an updated value.
Sebastian Harl [Tue, 22 Apr 2014 20:06:47 +0000 (22:06 +0200)]
store: Free old attribute values before storing an updated value.

8 years agocollectd::unixsock plugin: Free temporarily allocated memory.
Sebastian Harl [Tue, 22 Apr 2014 20:05:42 +0000 (22:05 +0200)]
collectd::unixsock plugin: Free temporarily allocated memory.

8 years agofrontend: Free strdup()'ed username when destroying a connection.
Sebastian Harl [Tue, 22 Apr 2014 18:27:44 +0000 (20:27 +0200)]
frontend: Free strdup()'ed username when destroying a connection.

8 years agosysdbd: Free up the config item returned from the parser as well.
Sebastian Harl [Tue, 22 Apr 2014 18:24:10 +0000 (20:24 +0200)]
sysdbd: Free up the config item returned from the parser as well.

oconfig_free() does not do that because it does not correctly keep track of
what the top-level config item is and it cannot free items which are the child
of another.

8 years agosysdbd: Shut down all plugins before exiting.
Sebastian Harl [Tue, 22 Apr 2014 17:49:27 +0000 (19:49 +0200)]
sysdbd: Shut down all plugins before exiting.

8 years agoplugin: Added sdb_plugin_shutdown_all().
Sebastian Harl [Tue, 22 Apr 2014 17:49:02 +0000 (19:49 +0200)]
plugin: Added sdb_plugin_shutdown_all().

This function calls all registered "shutdown" callbacks.

8 years agoMake clang-analyze happy in two irrelevant cases.
Sebastian Harl [Tue, 22 Apr 2014 07:08:06 +0000 (09:08 +0200)]
Make clang-analyze happy in two irrelevant cases.

8 years agosysdbd: Keep connections open during reconfiguration.
Sebastian Harl [Mon, 21 Apr 2014 18:23:15 +0000 (20:23 +0200)]
sysdbd: Keep connections open during reconfiguration.

By using the new sdb_fe_sock_clear_listeners(), the list of active listeners
may be reconfigured without affecting any open connections.

8 years agofrontend: Added sdb_fe_sock_clear_listeners().
Sebastian Harl [Mon, 21 Apr 2014 18:22:22 +0000 (20:22 +0200)]
frontend: Added sdb_fe_sock_clear_listeners().

This function may be used to shut down and clear all listeners associated with
a socket object without affecting any open connections.

8 years agosysdbd: Free the config parse tree after finishing config work.
Sebastian Harl [Mon, 21 Apr 2014 17:56:02 +0000 (19:56 +0200)]
sysdbd: Free the config parse tree after finishing config work.

8 years agosysdbd: Reconfigure the daemon on SIGHUP.
Sebastian Harl [Mon, 21 Apr 2014 17:46:23 +0000 (19:46 +0200)]
sysdbd: Reconfigure the daemon on SIGHUP.

The current approach shuts down the backend collector thread and the frontend.
Then, the config file is parsed again and libsysdb's reconfiguration mechanism
is used to reconfigure all plugins.

8 years agosysdbd: Added daemon_free_listen_addresses().
Sebastian Harl [Mon, 21 Apr 2014 17:38:38 +0000 (19:38 +0200)]
sysdbd: Added daemon_free_listen_addresses().

This is a helper function for handling config settings.

8 years agoMake all plugins ready for reconfiguration support.
Sebastian Harl [Mon, 21 Apr 2014 17:36:38 +0000 (19:36 +0200)]
Make all plugins ready for reconfiguration support.

That is, handle NULL arguments passed to the config and module init functions
during reconfiguration.

8 years agoplugin: Added support for reconfiguring the system on the fly.
Sebastian Harl [Mon, 21 Apr 2014 17:30:31 +0000 (19:30 +0200)]
plugin: Added support for reconfiguring the system on the fly.

Reconfiguring all plugins happens in multiple steps:

First, call sdb_plugin_reconfigure_init() to deconfigure all plugins by
calling their config callbacks with a NULL config tree and unregistering all
registered callbacks.

Then, sdb_plugin_configure() and other functions may be used to provide the
new configuration or load new plugins. For all plugins which were already
loaded before, sdb_module_init() will be called with a NULL argument when
reloading them.

Finally, sdb_plugin_reconfigure_finish() will clean up leftover pieces, like
unloading plugins which are no longer in use.

8 years agoutils llist: Added sdb_llist_clear().
Sebastian Harl [Mon, 21 Apr 2014 16:52:48 +0000 (18:52 +0200)]
utils llist: Added sdb_llist_clear().

This function clears the list by removing all elements and releasing the
included objects. It's similar to destroy() but does not actually release the
list object itself.

8 years agoutils llist: Removed sdb_ prefix from private functions.
Sebastian Harl [Mon, 21 Apr 2014 16:35:08 +0000 (18:35 +0200)]
utils llist: Removed sdb_ prefix from private functions.

For consistency!

8 years agoplugin: Do not expect all callbacks to have a plugin context assigned.
Sebastian Harl [Mon, 21 Apr 2014 16:18:56 +0000 (18:18 +0200)]
plugin: Do not expect all callbacks to have a plugin context assigned.

For callbacks not registered from a plugin, we don't have a context. For
example, the frontend's connection logger callback does not have a context.

8 years agoplugin: Unset the plugin context before unregistering a plugin.
Sebastian Harl [Sun, 20 Apr 2014 18:20:07 +0000 (20:20 +0200)]
plugin: Unset the plugin context before unregistering a plugin.

Else, the context is still considered to be in use and, thus, won't be removed
from the global plugin (context) list.

8 years agoplugin: Log to stderr if no logger has been registered.
Sebastian Harl [Sun, 20 Apr 2014 12:10:03 +0000 (14:10 +0200)]
plugin: Log to stderr if no logger has been registered.

Check the length of the list rather than replying on it being uninitialized.

8 years agoplugin: Let ctx_create() use ctx_set().
Sebastian Harl [Sun, 20 Apr 2014 10:05:57 +0000 (12:05 +0200)]
plugin: Let ctx_create() use ctx_set().

This ensures consistent handling of reference counts.

8 years agoplugin: Split sdb_plugin_load() into multiple functions.
Sebastian Harl [Sat, 19 Apr 2014 09:33:47 +0000 (11:33 +0200)]
plugin: Split sdb_plugin_load() into multiple functions.

… to make it easier to reuse parts of the function.

8 years agoplugin: Fixed detection of plugins loaded twice.
Sebastian Harl [Sat, 19 Apr 2014 09:22:17 +0000 (11:22 +0200)]
plugin: Fixed detection of plugins loaded twice.

This was missing in commit fdfe2a68ba1838cdb1c34d3275d129fb217fbd9d.

8 years agoplugin: Keep a global reference of a plugin context if it's still in use.
Sebastian Harl [Fri, 18 Apr 2014 12:59:09 +0000 (14:59 +0200)]
plugin: Keep a global reference of a plugin context if it's still in use.

D'oh!

8 years agoplugin: Increment ref-count for a context stored in the TSD.
Sebastian Harl [Fri, 18 Apr 2014 12:50:11 +0000 (14:50 +0200)]
plugin: Increment ref-count for a context stored in the TSD.

… and release it when removing it from the TSD. While this shouldn't matter
when everything is done right, this ensures that memory management is done
right.

8 years agoplugin: Only log a message when actually unloading a module.
Sebastian Harl [Fri, 18 Apr 2014 12:42:08 +0000 (14:42 +0200)]
plugin: Only log a message when actually unloading a module.

8 years agoplugin: Unload (dlclose) a plugin when it's no longer used.
Sebastian Harl [Fri, 18 Apr 2014 12:35:35 +0000 (14:35 +0200)]
plugin: Unload (dlclose) a plugin when it's no longer used.

Do so, if the init callback failed.

8 years agoplugin: Name the plugin context after the actual module name.
Sebastian Harl [Fri, 18 Apr 2014 12:31:24 +0000 (14:31 +0200)]
plugin: Name the plugin context after the actual module name.

That is, the name as specified by the user without '::' replaced by '/'.
The latter is only used for loading the shared object by file-name.

8 years agosysdbd: Fixed a config parser error message.
Sebastian Harl [Fri, 18 Apr 2014 12:27:52 +0000 (14:27 +0200)]
sysdbd: Fixed a config parser error message.

8 years agoplugin: Keep a usage counter for each plugin.
Sebastian Harl [Fri, 18 Apr 2014 11:57:00 +0000 (13:57 +0200)]
plugin: Keep a usage counter for each plugin.

Also, let plugin_load return early if the plugin is already loaded.
This is mostly in preparation for future improvements around plugin handling.

8 years agosysdbd: Moved main loop handling into a separate function.
Sebastian Harl [Thu, 17 Apr 2014 06:51:09 +0000 (08:51 +0200)]
sysdbd: Moved main loop handling into a separate function.

This will allow for easier restart of the main loop.

8 years agollist_test: Removed "llist" from all test names.
Sebastian Harl [Mon, 14 Apr 2014 17:50:51 +0000 (19:50 +0200)]
llist_test: Removed "llist" from all test names.

No need to use overly long names.

8 years agollist utils: Added sdb_llist_remove_by_name().
Sebastian Harl [Mon, 14 Apr 2014 17:49:22 +0000 (19:49 +0200)]
llist utils: Added sdb_llist_remove_by_name().

This function removes the first entry with the specified name.

8 years agollist_test: Removed "sdb" from test names.
Sebastian Harl [Mon, 14 Apr 2014 17:39:29 +0000 (19:39 +0200)]
llist_test: Removed "sdb" from test names.

8 years agofrontend: Force-close the connection in sdb_connection_close().
Sebastian Harl [Fri, 11 Apr 2014 07:18:28 +0000 (09:18 +0200)]
frontend: Force-close the connection in sdb_connection_close().

Previously, it would still be kept open if someone else referenced the object.

8 years agoFrontend: Improve debug log when destroying a connection.
Sebastian Harl [Fri, 11 Apr 2014 07:15:56 +0000 (09:15 +0200)]
Frontend: Improve debug log when destroying a connection.

The file-descriptor associated with the connection might not be open any more
and, thus, be -1. Instead of using that in the message, use the connection's
object name which includes the file-descriptor as used when accepting the
connection.

8 years agofrontend: Fixed a memory leak in the connection context handler.
Sebastian Harl [Fri, 11 Apr 2014 07:13:55 +0000 (09:13 +0200)]
frontend: Fixed a memory leak in the connection context handler.

Previously, the ownership was not taken away from the thread-specific data
aftter removing the connection from the current context, thus leaking each
connection object.

8 years agoMerged branch 'master' of git://git.tokkee.org/sysdb.
Sebastian Harl [Fri, 11 Apr 2014 06:44:10 +0000 (08:44 +0200)]
Merged branch 'master' of git://git.tokkee.org/sysdb.

8 years agosysdbd: Ignore SIGPIPE (e.g. when a client connection was aborted).
Sebastian Harl [Thu, 10 Apr 2014 20:16:26 +0000 (22:16 +0200)]
sysdbd: Ignore SIGPIPE (e.g. when a client connection was aborted).

8 years agofrontend: Be more robust in case of failed connections.
Sebastian Harl [Thu, 10 Apr 2014 20:15:03 +0000 (22:15 +0200)]
frontend: Be more robust in case of failed connections.

Make sure not to write to a failed connection, most notably, don't try to log
to a failed connection.

8 years agofrontend: Close a connection when receiving an exception of the fd.
Sebastian Harl [Thu, 10 Apr 2014 19:44:18 +0000 (21:44 +0200)]
frontend: Close a connection when receiving an exception of the fd.

8 years agosysdb: Added support for the -c <cmd> option.
Sebastian Harl [Thu, 10 Apr 2014 19:13:18 +0000 (21:13 +0200)]
sysdb: Added support for the -c <cmd> option.

This option (which may be specified multiple times) may be used to send
commands to the server in a non-interactive way. After handling the reply from
the last command, the process exits.

8 years agosock.h: Fixed documentation of sdb_client_send() return values.
Sebastian Harl [Thu, 10 Apr 2014 19:05:31 +0000 (21:05 +0200)]
sock.h: Fixed documentation of sdb_client_send() return values.

8 years agocore: Allow objects to have the same size as sdb_object_t.
Sebastian Harl [Thu, 10 Apr 2014 15:57:44 +0000 (17:57 +0200)]
core: Allow objects to have the same size as sdb_object_t.

That is, allow minimalistic objects which only have a name.

8 years agosysdb: Let sdb_command_print_reply() accept client instead of input objects.
Sebastian Harl [Thu, 10 Apr 2014 15:50:53 +0000 (17:50 +0200)]
sysdb: Let sdb_command_print_reply() accept client instead of input objects.

This is more flexible.

8 years agoTravis: Only run coveralls when using gcc.
Sebastian Harl [Thu, 10 Apr 2014 14:02:11 +0000 (16:02 +0200)]
Travis: Only run coveralls when using gcc.

We don't have any gcov information in any other case.

8 years agoTravis: Don't use 'coveralls --verbose'.
Sebastian Harl [Thu, 10 Apr 2014 13:59:49 +0000 (15:59 +0200)]
Travis: Don't use 'coveralls --verbose'.

coveralls reports work fine now, so we don't need this anymore.

8 years agoREADME: Added links to travis-ci and coveralls.
Sebastian Harl [Thu, 10 Apr 2014 13:51:02 +0000 (15:51 +0200)]
README: Added links to travis-ci and coveralls.

8 years agosysdbd(1): Fixed typo.
Sebastian Harl [Thu, 10 Apr 2014 13:48:11 +0000 (15:48 +0200)]
sysdbd(1): Fixed typo.

8 years agoAdded sysdb(1) manpage and updated sysdb help output.
Sebastian Harl [Thu, 10 Apr 2014 13:45:37 +0000 (15:45 +0200)]
Added sysdb(1) manpage and updated sysdb help output.

8 years agoTravis: Don't use --use-mirrors with pip.
Sebastian Harl [Thu, 10 Apr 2014 13:11:21 +0000 (15:11 +0200)]
Travis: Don't use --use-mirrors with pip.

It's been deprecated and I think we don't need it ;-)

8 years agoTravis; Pass --build-root to coveralls.
Sebastian Harl [Thu, 10 Apr 2014 10:59:21 +0000 (12:59 +0200)]
Travis; Pass --build-root to coveralls.

Else, it cannot find the right source files.

8 years agoTravis: Display information about cpp-coveralls after installing it.
Sebastian Harl [Thu, 10 Apr 2014 10:59:00 +0000 (12:59 +0200)]
Travis: Display information about cpp-coveralls after installing it.

8 years agot/coverage.sh: Restore t/cibuild.sh in the temp directory.
Sebastian Harl [Wed, 9 Apr 2014 16:06:22 +0000 (18:06 +0200)]
t/coverage.sh: Restore t/cibuild.sh in the temp directory.

This is to avoid the version being marked as dirty.

8 years agostore_lookup_test: Added a more complex parser/lookup test.
Sebastian Harl [Wed, 9 Apr 2014 16:02:38 +0000 (18:02 +0200)]
store_lookup_test: Added a more complex parser/lookup test.

8 years agostore_lookup: Added "tostring" methods for matcher objects.
Sebastian Harl [Wed, 9 Apr 2014 15:34:56 +0000 (17:34 +0200)]
store_lookup: Added "tostring" methods for matcher objects.

This is meant for logging and debugging. For now, it's used in tests to check
parsed and compiled matchers.

8 years agostore_lookup_test: Fixed user-data passed to the lookup callback.
Sebastian Harl [Wed, 9 Apr 2014 14:25:29 +0000 (16:25 +0200)]
store_lookup_test: Fixed user-data passed to the lookup callback.

8 years agoparser: Make sure that each comparator matcher is a host matcher.
Sebastian Harl [Wed, 9 Apr 2014 14:19:44 +0000 (16:19 +0200)]
parser: Make sure that each comparator matcher is a host matcher.

So far, 'NOT (service|attribute).<attr> <cmp> <value>' matches did not work
correctly, because the object matcher was not correctly wrapped into a host
matcher. Since we do not currently support querying any object types besides
hosts, this was wrong.

The respective code has been moved into sdb_store_matcher_parse_cmp() which
also implements and checks the restriction on matching host objects only.

A new set of tests has been introduced which exposed this problem and which
(roughly) verifies the result of a lookup using a parsed matcher.

8 years agofrontend/parser_test: Cover more basic expressions.
Sebastian Harl [Tue, 8 Apr 2014 12:29:07 +0000 (14:29 +0200)]
frontend/parser_test: Cover more basic expressions.

8 years agoplugin: Removed obsolete TODO note.
Sebastian Harl [Mon, 7 Apr 2014 07:05:30 +0000 (09:05 +0200)]
plugin: Removed obsolete TODO note.

8 years agofrontend: Actually implement support for the NOT operator.
Sebastian Harl [Sun, 6 Apr 2014 17:57:07 +0000 (19:57 +0200)]
frontend: Actually implement support for the NOT operator.

8 years agocore, frontend: Added !=, !~, and NOT operators.
Sebastian Harl [Sun, 6 Apr 2014 17:42:43 +0000 (19:42 +0200)]
core, frontend: Added !=, !~, and NOT operators.

8 years agostore_lookup: Added sdb_store_inv_matcher().
Sebastian Harl [Sun, 6 Apr 2014 17:17:51 +0000 (19:17 +0200)]
store_lookup: Added sdb_store_inv_matcher().

This creates a matcher objects which matches the inverse (logical NOT) of the
specified matcher.

8 years agofrontend: Let the parser support brackets in matcher expressions.
Sebastian Harl [Sun, 6 Apr 2014 12:17:55 +0000 (14:17 +0200)]
frontend: Let the parser support brackets in matcher expressions.

8 years agofrontend: Fixed memory holes in the parser.
Sebastian Harl [Sun, 6 Apr 2014 12:04:48 +0000 (14:04 +0200)]
frontend: Fixed memory holes in the parser.

8 years agostore: Don't change the interval if the new interval is zero.
Sebastian Harl [Sun, 6 Apr 2014 11:46:37 +0000 (13:46 +0200)]
store: Don't change the interval if the new interval is zero.

If the interval is zero, multiple updates happened at the same time. This does
not affect the interval at which the object is updated in the backend, though.

8 years agoparser_test: Check operator precedence.
Sebastian Harl [Sun, 6 Apr 2014 11:38:27 +0000 (13:38 +0200)]
parser_test: Check operator precedence.

8 years agoparser_test: Check matcher type returned by sdb_fe_parse_matcher().
Sebastian Harl [Sun, 6 Apr 2014 11:35:32 +0000 (13:35 +0200)]
parser_test: Check matcher type returned by sdb_fe_parse_matcher().

8 years agofrontend parser: Added support for AND and OR matchers.
Sebastian Harl [Sun, 6 Apr 2014 11:28:21 +0000 (13:28 +0200)]
frontend parser: Added support for AND and OR matchers.

8 years agofrontend: Updated unit-tests for expression related parsing.
Sebastian Harl [Sat, 5 Apr 2014 18:20:13 +0000 (20:20 +0200)]
frontend: Updated unit-tests for expression related parsing.

8 years agofrontend: Accept compare matchers as expressions.
Sebastian Harl [Sat, 5 Apr 2014 18:06:28 +0000 (20:06 +0200)]
frontend: Accept compare matchers as expressions.

… replacing the current placeholder.

For now, this is specific to '=' (equal) and '=~' (regex) comparison.

8 years agofrontend: Don't ignore single characters in the scanner.
Sebastian Harl [Sat, 5 Apr 2014 17:49:47 +0000 (19:49 +0200)]
frontend: Don't ignore single characters in the scanner.

This would lead to those characters be silently ignored at any place in the
input stream.

8 years agostore: Added sdb_store_matcher_parse_cmp().
Sebastian Harl [Sat, 5 Apr 2014 16:42:06 +0000 (18:42 +0200)]
store: Added sdb_store_matcher_parse_cmp().

This function parses simple matcher compare expressions (<obj_type>.<attr>
<op> <value>).

8 years agostore: Moved matcher types to store-private.h.
Sebastian Harl [Sat, 5 Apr 2014 16:41:26 +0000 (18:41 +0200)]
store: Moved matcher types to store-private.h.

8 years agocollectd::unixsock backend: Simplified host updates.
Sebastian Harl [Fri, 4 Apr 2014 10:44:13 +0000 (12:44 +0200)]
collectd::unixsock backend: Simplified host updates.

Also, don't do duplicate updates in a single iteration. This caused bad
startup effects for the interval calculation.

Later, we should make the core more robust in that respect, I guess.

8 years agostore_test: Added a test for interval calculation.
Sebastian Harl [Thu, 3 Apr 2014 14:03:59 +0000 (16:03 +0200)]
store_test: Added a test for interval calculation.

8 years agostore: Include update interval in the JSON serialization.
Sebastian Harl [Thu, 3 Apr 2014 13:28:00 +0000 (15:28 +0200)]
store: Include update interval in the JSON serialization.

8 years agocore/time: Added sdb_strfinterval().
Sebastian Harl [Thu, 3 Apr 2014 13:04:30 +0000 (15:04 +0200)]
core/time: Added sdb_strfinterval().

This function formats a time interval using the format 1Y2M3D4h5m6.7s.

8 years agostore: Fixed a conversion warning reported by GCC.
Sebastian Harl [Thu, 3 Apr 2014 08:24:48 +0000 (10:24 +0200)]
store: Fixed a conversion warning reported by GCC.

8 years agostore: Calculate and store each objects update interval.
Sebastian Harl [Wed, 2 Apr 2014 10:37:10 +0000 (12:37 +0200)]
store: Calculate and store each objects update interval.

The interval is calculated as the moving average of the incoming update
intervals. This should also work fine for out-of-order updates or updates from
multiple sources.