Add id key to database abstraction layer 38/145738/2
authorPaweł Szewczyk <p.szewczyk@samsung.com>
Wed, 23 Aug 2017 09:38:18 +0000 (11:38 +0200)
committerPaweł Szewczyk <p.szewczyk@samsung.com>
Wed, 23 Aug 2017 12:19:11 +0000 (14:19 +0200)
Change-Id: I1c1be8bba0aa1c6fb3a3627bc7878c7b38213f47
Signed-off-by: Paweł Szewczyk <p.szewczyk@samsung.com>
src/core/database.c
src/core/database.h
src/core/event_processor.c
src/database/database_nop.c
src/database/ejdb.c

index d90fa9030d977ec5e5c6f60e382c15925eb3348a..d4e2acee5580450416f6cb26e75a63f8290d6f59 100644 (file)
@@ -64,3 +64,11 @@ int database_get_by_oid(faultd_oid_t *oid, struct faultd_object *result)
 
        return database_adapter->get_by_oid(database_adapter, oid, result);
 }
+
+const char *database_get_id_key(void)
+{
+       if (!database_adapter)
+               return NULL;
+
+       return database_adapter->id_key;
+}
index 0ad07705f5f179b4566acb3f92f9e02a222de082..2946c760126c9f0958357e1a3c8793200231c846 100644 (file)
 #ifndef _DATABASE_H_
 #define _DATABASE_H_
 
-#include <ejdb/bson.h>
-
 #include "common.h"
 #include "module.h"
 
 struct faultd_database_adapter {
        struct faultd_module module;
        char *name;
+       const char *id_key;
 
        int (*store)(struct faultd_database_adapter *adapter,
                                 struct faultd_object *obj, faultd_oid_t *oid);
@@ -49,5 +48,6 @@ int database_store(struct faultd_object *obj, faultd_oid_t *oid);
 int database_get_by_oid(faultd_oid_t *oid, struct faultd_object *result);
 int database_load(struct faultd_object *query, struct faultd_object *result, uint32_t *nr);
 int database_new_oid(faultd_oid_t *oid);
+const char *database_get_id_key(void);
 
 #endif /* _DATABASE_H_ */
index 0b86b0e89384ffe336da0c59f3150c91d9c2a81e..c28077f3273de34e320d12732ac464d88880b8dc 100644 (file)
@@ -138,7 +138,7 @@ int event_processor_report_event(struct faultd_event *ev)
 
        faultd_object_new(&obj);
        database_new_oid(&oid);
-       faultd_object_append_oid(obj, JDBIDKEYNAME, &oid);
+       faultd_object_append_oid(obj, database_get_id_key(), &oid);
        faultd_event_serialize(ev, obj);
 
        database_store(obj, &ev->oid);
index c0fac745c1b8e4ce961326c8baafcf94d94afabe..cf93612617087ab9e072fd363b710b8de0edb2bd 100644 (file)
@@ -73,6 +73,7 @@ static struct nop_adapter nop_adapter = {
                        .cleanup = cleanup_nop_adapter,
                        .node = LIST_HEAD_INIT(nop_adapter.database_adapter.module.node),
                },
+               .id_key = "id",
                .store = nop_store,
                .get_by_oid = nop_get_by_oid,
                .load = nop_load,
index 4ce206c18ff6ccfbaae9bc0823a78399751369d7..c93e56302c919ab8ef81cd3e86d55e4d12750eec 100644 (file)
@@ -389,6 +389,7 @@ static struct ejdb_adapter ejdb_adapter = {
                        .cleanup = cleanup_ejdb_adapter,
                        .node = LIST_HEAD_INIT(ejdb_adapter.database_adapter.module.node),
                },
+               .id_key = JDBIDKEYNAME,
                .store = ejdb_store,
                .get_by_oid = ejdb_get_by_oid,
                .load = ejdb_load,