Code

utils data: Added module providing a data-type to store arbitrary backend data
[sysdb.git] / src / backend / puppet-storeconfigs.c
index 5ebd16f61b8dd5d0fd77cd93076833260a2d5c7b..6cc68d3f44c102952a18e102aa30bf6dca697125 100644 (file)
@@ -49,27 +49,31 @@ SC_PLUGIN_MAGIC;
 
 static int
 sc_puppet_stcfg_get_data(sc_dbi_client_t __attribute__((unused)) *client,
-               size_t n, sc_dbi_data_t *data)
+               size_t n, sc_data_t *data)
 {
        sc_host_t host = SC_HOST_INIT;
 
+       int status;
+
        assert(n == 2);
-       assert((data[0].type == DBI_TYPE_STRING)
-                       && (data[1].type == DBI_TYPE_DATETIME));
+       assert((data[0].type == SC_TYPE_STRING)
+                       && (data[1].type == SC_TYPE_DATETIME));
 
        host.host_name = strdup(data[0].data.string);
        host.host_last_update = data[1].data.datetime;
 
-       if (sc_store_host(&host)) {
+       status = sc_store_host(&host);
+
+       if (status < 0) {
                fprintf(stderr, "puppet storeconfigs backend: Failed to store/update "
                                "host '%s'.\n", host.host_name);
                free(host.host_name);
                return -1;
        }
-
-       fprintf(stderr, "puppet storeconfigs backend: Added/updated host '%s' "
-                       "(last update timestamp = %"PRIscTIME").\n",
-                       host.host_name, host.host_last_update);
+       else if (! status)
+               fprintf(stderr, "puppet storeconfigs backend: Added/updated host '%s' "
+                               "(last update timestamp = %"PRIscTIME").\n",
+                               host.host_name, host.host_last_update);
        free(host.host_name);
        return 0;
 } /* sc_puppet_stcfg_get_data */
@@ -109,7 +113,7 @@ sc_puppet_stcfg_collect(sc_object_t *user_data)
        client = SC_OBJ_WRAPPER(user_data)->data;
        if (sc_dbi_exec_query(client, "SELECT name, updated_at FROM hosts;",
                                sc_puppet_stcfg_get_data, /* #columns = */ 2,
-                               /* col types = */ DBI_TYPE_STRING, DBI_TYPE_DATETIME)) {
+                               /* col types = */ SC_TYPE_STRING, SC_TYPE_DATETIME)) {
                fprintf(stderr, "puppet storeconfigs backend: Failed to retrieve "
                                "hosts from the storeconfigs DB.\n");
                return -1;