X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=src%2Fbackend%2Fpuppet%2Fstore-configs.c;h=c2f4d084048c71fbccb945b4f38dd753fda24d8d;hp=e109b305819cfcec5fb1d7f32403241ed519d69b;hb=1a9933488f9e7babf6c538393cc69c636efca2ed;hpb=3cc3e3c36239c902263678100180c95c8263f7f8 diff --git a/src/backend/puppet/store-configs.c b/src/backend/puppet/store-configs.c index e109b30..c2f4d08 100644 --- a/src/backend/puppet/store-configs.c +++ b/src/backend/puppet/store-configs.c @@ -33,8 +33,6 @@ #include "liboconfig/utils.h" -#include - #include #include @@ -138,6 +136,17 @@ sdb_puppet_stcfg_init(sdb_object_t *user_data) return 0; } /* sdb_puppet_stcfg_init */ +static int +sdb_puppet_stcfg_shutdown(sdb_object_t *user_data) +{ + if (! user_data) + return -1; + + sdb_dbi_client_destroy(SDB_OBJ_WRAPPER(user_data)->data); + SDB_OBJ_WRAPPER(user_data)->data = NULL; + return 0; +} /* sdb_puppet_stcfg_shutdown */ + static int sdb_puppet_stcfg_collect(sdb_object_t *user_data) { @@ -330,6 +339,8 @@ sdb_puppet_stcfg_config_conn(oconfig_item_t *ci) } sdb_plugin_register_init(cb_name, sdb_puppet_stcfg_init, user_data); + sdb_plugin_register_shutdown(cb_name, sdb_puppet_stcfg_shutdown, + user_data); sdb_plugin_register_collector(cb_name, sdb_puppet_stcfg_collect, /* interval */ NULL, user_data); @@ -343,6 +354,9 @@ sdb_puppet_stcfg_config(oconfig_item_t *ci) { int i; + if (! ci) /* nothing to do to deconfigure this plugin */ + return 0; + for (i = 0; i < ci->children_num; ++i) { oconfig_item_t *child = ci->children + i; @@ -367,13 +381,6 @@ sdb_module_init(sdb_plugin_info_t *info) sdb_plugin_set_info(info, SDB_PLUGIN_INFO_VERSION, SDB_VERSION); sdb_plugin_set_info(info, SDB_PLUGIN_INFO_PLUGIN_VERSION, SDB_VERSION); - if (dbi_initialize(/* driver dir = */ NULL) < 0) { - sdb_log(SDB_LOG_ERR, "puppet::store-configs backend: failed to " - "initialize DBI; possibly you don't have any drivers " - "installed."); - return -1; - } - sdb_plugin_register_config("puppet::store-configs", sdb_puppet_stcfg_config); return 0;