{
struct faultd_object *obj;
faultd_oid_t oid;
+ int ret;
faultd_object_new(&obj);
- database_new_oid(&oid);
+ ret = database_new_oid(&oid);
+ if (ret < 0) {
+ log_warning_errno(ret, "Database could not create new OID: %m");
+ goto unref_obj;
+ }
+
faultd_object_append_oid(obj, database_get_id_key(), &oid);
faultd_event_serialize(ev, obj);
- database_store(obj, &ev->oid);
+ ret = database_store(obj, &ev->oid);
+ if (ret < 0)
+ log_warning_errno(ret, "Could not save event to database: %m");
+unref_obj:
faultd_object_unref(obj);
return nqueue_append(&event_processor.pending_events,
#include "database.h"
#define NOP_DEFAULT_OID "NOP"
+#define NOP_ID_KEY_NAME "id"
struct nop_adapter {
struct faultd_database_adapter database_adapter;
{
}
-static int nop_store(struct faultd_database_adapter *adapter,
- struct faultd_object *obj, faultd_oid_t *oid)
-{
- return 0;
-}
-
static int nop_get_by_oid(struct faultd_database_adapter *adapter,
faultd_oid_t *oid, struct faultd_object *result)
{
return 0;
}
+static int nop_store(struct faultd_database_adapter *adapter,
+ struct faultd_object *obj, faultd_oid_t *oid)
+{
+ int ret;
+
+ ret = faultd_object_get_oid(obj, NOP_ID_KEY_NAME, oid);
+ if (ret == -ENOENT) {
+ nop_new_oid(oid);
+ ret = 0;
+ }
+
+ return ret;
+}
+
+
static int nop_get_well_known_oid(const char *name, faultd_oid_t *oid)
{
return nop_new_oid(oid);
.cleanup = cleanup_nop_adapter,
.node = LIST_HEAD_INIT(nop_adapter.database_adapter.module.node),
},
- .id_key = "id",
+ .id_key = NOP_ID_KEY_NAME,
.store = nop_store,
.get_by_oid = nop_get_by_oid,
.load = nop_load,