X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=src%2Fbackend%2Fpuppet%2Fstore-configs.c;h=a9a0ff777e9d6f35bd364885832b485d1f88beef;hp=bde8a0aeb1e27feed83f292d58745f5406a4a786;hb=ddb933096618a6bceded29e4dc2b37cb72134366;hpb=1fee763a36a0c9af761244bbce8cd6c233ddbe2a diff --git a/src/backend/puppet/store-configs.c b/src/backend/puppet/store-configs.c index bde8a0a..a9a0ff7 100644 --- a/src/backend/puppet/store-configs.c +++ b/src/backend/puppet/store-configs.c @@ -28,8 +28,8 @@ #include "sysdb.h" #include "core/plugin.h" #include "core/store.h" -#include "core/error.h" #include "utils/dbi.h" +#include "utils/error.h" #include "liboconfig/utils.h" @@ -52,7 +52,8 @@ sdb_puppet_stcfg_get_hosts(sdb_dbi_client_t __attribute__((unused)) *client, size_t n, sdb_data_t *data, sdb_object_t __attribute__((unused)) *user_data) { - sdb_host_t host = SDB_HOST_INIT; + const char *hostname; + sdb_time_t timestamp; int status; @@ -60,22 +61,20 @@ sdb_puppet_stcfg_get_hosts(sdb_dbi_client_t __attribute__((unused)) *client, assert((data[0].type == SDB_TYPE_STRING) && (data[1].type == SDB_TYPE_DATETIME)); - SDB_OBJ(&host)->name = strdup(data[0].data.string); - host._last_update = data[1].data.datetime; + hostname = data[0].data.string; + timestamp = data[1].data.datetime; - status = sdb_store_host(&host); + status = sdb_store_host(hostname, timestamp); if (status < 0) { sdb_log(SDB_LOG_ERR, "puppet::store-configs backend: Failed to " - "store/update host '%s'.", SDB_OBJ(&host)->name); - free(SDB_OBJ(&host)->name); + "store/update host '%s'.", hostname); return -1; } else if (! status) sdb_log(SDB_LOG_DEBUG, "puppet::store-configs backend: " "Added/updated host '%s' (last update timestamp = " - "%"PRIscTIME").", SDB_OBJ(&host)->name, host._last_update); - free(SDB_OBJ(&host)->name); + "%"PRIscTIME").", hostname, timestamp); return 0; } /* sdb_puppet_stcfg_get_hosts */ @@ -84,36 +83,33 @@ sdb_puppet_stcfg_get_attrs(sdb_dbi_client_t __attribute__((unused)) *client, size_t n, sdb_data_t *data, sdb_object_t __attribute__((unused)) *user_data) { - sdb_attribute_t attr = SDB_ATTR_INIT; - int status; + const char *hostname; + const char *key; + const char *value; + sdb_time_t last_update; + assert(n == 4); assert((data[0].type == SDB_TYPE_STRING) && (data[1].type == SDB_TYPE_STRING) && (data[2].type == SDB_TYPE_STRING) && (data[3].type == SDB_TYPE_DATETIME)); - attr.hostname = strdup(data[0].data.string); - SDB_OBJ(&attr)->name = strdup(data[1].data.string); - attr.attr_value = strdup(data[2].data.string); - attr._last_update = data[3].data.datetime; + hostname = data[0].data.string; + key = data[1].data.string; + value = data[2].data.string; + last_update = data[3].data.datetime; - status = sdb_store_attribute(&attr); + status = sdb_store_attribute(hostname, key, value, last_update); if (status < 0) { sdb_log(SDB_LOG_ERR, "puppet::store-configs backend: Failed to " "store/update host attribute '%s' for host '%s'.", - SDB_OBJ(&attr)->name, attr.hostname); - free(attr.hostname); - free(SDB_OBJ(&attr)->name); - free(attr.attr_value); + key, hostname); return -1; } - free(attr.hostname); - free(SDB_OBJ(&attr)->name); - free(attr.attr_value); return 0; } /* sdb_puppet_stcfg_get_attrs */