database: Remove get_event from ejdb adapter 47/167447/1
authorPaweł Szewczyk <p.szewczyk@samsung.com>
Wed, 17 Jan 2018 16:21:20 +0000 (17:21 +0100)
committerPaweł Szewczyk <p.szewczyk@samsung.com>
Wed, 17 Jan 2018 16:25:17 +0000 (17:25 +0100)
This function is only a helper, which can be implemented on higher
abstraction level. For the sake of testing framework, the function is
left as optional in adapter structure for now.

Change-Id: I335b6ffd8572b350573f417847070c06ee8e362d
Signed-off-by: Paweł Szewczyk <p.szewczyk@samsung.com>
src/core/database.c
src/database/ejdb.c

index cb127c99c390d30234c97047479b1587233dcd4c..57a2061501c1d4d1b687ef587fcea0f8b2989c45 100644 (file)
@@ -96,14 +96,39 @@ const char *database_get_id_key(void)
 
 int database_get_event(faultd_oid_t *oid, struct faultd_event **ev)
 {
+       struct faultd_object *obj;
        int ret;
 
-       if (!database_adapter)
-               return -ENOSYS;
-
-       ret = database_adapter->get_event(oid, ev);
-       if (ret == 0)
-               (*ev)->oid = *oid;
+       if (database_adapter && database_adapter->get_event) {
+               ret = database_adapter->get_event(oid, ev);
+               if (ret == 0)
+                       (*ev)->oid = *oid;
+
+               return ret;
+       }
+
+       ret = faultd_object_new(&obj);
+       if (ret) {
+               log_error("Could not create object");
+               return ret;
+       }
+
+       ret = database_get_by_oid(oid, obj);
+       if (ret) {
+               log_error("Could not find object");
+               goto cleanup;
+       }
+
+       ret = faultd_event_create(BSON_EVENT_ID, obj, ev);
+       if (ret) {
+               log_error("Could not create an event");
+               goto cleanup;
+       }
+
+       (*ev)->oid = *oid;
+       return 0;
 
+cleanup:
+       faultd_object_unref(obj);
        return ret;
 }
index 4771e1a55275c4a5911404fc4384dc9854ad5523..1277024ef095823ffe9d5bf86ebfee77f91bee3e 100644 (file)
@@ -440,28 +440,6 @@ static bool ejdb_is_oid_valid(faultd_oid_t *oid)
                oid->bson.ints[2] != 0;
 }
 
-static int ejdb_get_event(faultd_oid_t *oid, struct faultd_event **ev)
-{
-       struct faultd_object *obj;
-       int ret;
-
-       ret = faultd_object_new(&obj);
-       if (ret)
-               return ret;
-
-       ret = database_get_by_oid(oid, obj);
-       if (ret)
-               goto cleanup;
-
-       ret = faultd_event_create(BSON_EVENT_ID, obj, ev);
-       if (ret)
-               goto cleanup;
-
-cleanup:
-       faultd_object_unref(obj);
-       return ret;
-}
-
 static struct ejdb_adapter ejdb_adapter = {
        .database_adapter = {
                .module = {
@@ -477,7 +455,6 @@ static struct ejdb_adapter ejdb_adapter = {
                .load = ejdb_load,
                .get_well_known_oid = ejdb_get_well_known_oid,
                .is_oid_valid = ejdb_is_oid_valid,
-               .get_event = ejdb_get_event,
        }
 };