From 8cc1ac55b3c1dc804d9e6bb516975ba3d6e93b67 Mon Sep 17 00:00:00 2001 From: Sebastian Harl Date: Sat, 8 Aug 2015 09:57:48 +0200 Subject: [PATCH] plugin: Report an error when writing to the store with no writers. --- src/core/plugin.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/core/plugin.c b/src/core/plugin.c index 26b1408..da8a485 100644 --- a/src/core/plugin.c +++ b/src/core/plugin.c @@ -1465,6 +1465,12 @@ sdb_plugin_store_host(const char *name, sdb_time_t last_update) if (! name) return -1; + if (! sdb_llist_len(writer_list)) { + sdb_log(SDB_LOG_ERR, "core: Cannot store host: " + "no writers registered"); + return -1; + } + iter = sdb_llist_get_iter(writer_list); while (sdb_llist_iter_has_next(iter)) { writer_t *writer = WRITER(sdb_llist_iter_get_next(iter)); @@ -1488,6 +1494,12 @@ sdb_plugin_store_service(const char *hostname, const char *name, if ((! hostname) || (! name)) return -1; + if (! sdb_llist_len(writer_list)) { + sdb_log(SDB_LOG_ERR, "core: Cannot store service: " + "no writers registered"); + return -1; + } + iter = sdb_llist_get_iter(writer_list); while (sdb_llist_iter_has_next(iter)) { writer_t *writer = WRITER(sdb_llist_iter_get_next(iter)); @@ -1512,6 +1524,12 @@ sdb_plugin_store_metric(const char *hostname, const char *name, if ((! hostname) || (! name)) return -1; + if (! sdb_llist_len(writer_list)) { + sdb_log(SDB_LOG_ERR, "core: Cannot store metric: " + "no writers registered"); + return -1; + } + if (store && ((! store->type) || (! store->id))) store = NULL; @@ -1539,6 +1557,12 @@ sdb_plugin_store_attribute(const char *hostname, const char *key, if ((! hostname) || (! key) || (! value)) return -1; + if (! sdb_llist_len(writer_list)) { + sdb_log(SDB_LOG_ERR, "core: Cannot store attribute: " + "no writers registered"); + return -1; + } + iter = sdb_llist_get_iter(writer_list); while (sdb_llist_iter_has_next(iter)) { writer_t *writer = WRITER(sdb_llist_iter_get_next(iter)); @@ -1563,6 +1587,12 @@ sdb_plugin_store_service_attribute(const char *hostname, const char *service, if ((! hostname) || (! service) || (! key) || (! value)) return -1; + if (! sdb_llist_len(writer_list)) { + sdb_log(SDB_LOG_ERR, "core: Cannot store service attribute: " + "no writers registered"); + return -1; + } + iter = sdb_llist_get_iter(writer_list); while (sdb_llist_iter_has_next(iter)) { writer_t *writer = WRITER(sdb_llist_iter_get_next(iter)); @@ -1587,6 +1617,12 @@ sdb_plugin_store_metric_attribute(const char *hostname, const char *metric, if ((! hostname) || (! metric) || (! key) || (! value)) return -1; + if (! sdb_llist_len(writer_list)) { + sdb_log(SDB_LOG_ERR, "core: Cannot store metric attribute: " + "no writers registered"); + return -1; + } + iter = sdb_llist_get_iter(writer_list); while (sdb_llist_iter_has_next(iter)) { writer_t *writer = WRITER(sdb_llist_iter_get_next(iter)); -- 2.30.2