src/listeners/systemd.c \
src/listeners/startup.c \
src/database/ejdb.c \
+ src/database/sqlite.c \
src/decision_makers/vip_fault_dm.c \
src/decision_makers/rv_dm.c \
src/decision_makers/standard_fault_dm.c \
systemd_listener.la \
startup_listener.la \
ejdb_dbadapter.la \
+ sqlite_dbadapter.la \
vip_fault_eh.la \
resource_violation_eh.la \
standard_fault_eh.la \
startup_listener_la_SOURCES = src/listeners/startup.c
ejdb_dbadapter_la_SOURCES = src/database/ejdb.c
ejdb_dbadapter_la_LIBADD = $(LIBEJDB_LIBS)
+sqlite_dbadapter_la_SOURCES = src/database/sqlite.c
+sqlite_dbadapter_la_LIBADD = $(SQLITE3_LIBS)
vip_fault_eh_la_SOURCES = src/decision_makers/vip_fault_dm.c
resource_violation_eh_la_SOURCES = src/decision_makers/rv_dm.c
standard_fault_eh_la_SOURCES = src/decision_makers/standard_fault_dm.c
$(faultd_LDADD) \
$(CMOCKA_LIBS) \
$(AUDIT_LIBS) \
+ $(SQLITE3_LIBS) \
$(LIBEJDB_LIBS)
test_CFLAGS = -I${top_srcdir}/src/util \
Group: System/Monitoring
%define with_faultd_glib_support 0
+%define database_module sqlite_dbadapter
BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(json-c)
BuildRequires: pkgconfig(cmocka)
BuildRequires: pkgconfig(libejdb)
+BuildRequires: pkgconfig(sqlite3)
%if %{with_faultd_glib_support}
BuildRequires: pkgconfig(glib-2.0)
%endif
done
for mod in audit_listener \
- ejdb_dbadapter \
resource_violation_eh \
service_recover_action \
service_restart_action \
echo %{enabled_moduledir}/${mod}.so >> faultd-extra-files;
done
+for mod in ejdb_dbadapter \
+ sqlite_dbadapter
+do
+ ln -s %{moduledir}/${mod}.so %{buildroot}/%{moduleconfdir}/${mod}.so;
+ echo %{moduledir}/${mod}.so >> faultd-extra-files;
+ echo %{moduleconfdir}/${mod}.so >> faultd-extra-files;
+done
+
+ln -s ../available-modules/%{database_module}.so %{buildroot}/%{enabled_moduledir}/%{database_module}.so;
+echo %{enabled_moduledir}/%{database_module}.so >> faultd-extra-files;
+
%files -f faultd-files
%license COPYING
%manifest %{name}.manifest
--- /dev/null
+/*
+ * This file is a part of faultd.
+ *
+ * Copyright © 2017 Samsung Electronics
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <assert.h>
+#include <errno.h>
+#include <sqlite3.h>
+
+#include "database.h"
+#include "log.h"
+#include "module.h"
+
+#define ID_KEY "id"
+
+struct sqlite_adapter {
+ struct faultd_database_adapter database_adapter;
+};
+
+#define to_sqlite_adapter(MOD) \
+ container_of(MOD, struct sqlite_adapter, database_adapter)
+
+static void cleanup_sqlite_adapter(struct faultd_module *module)
+{
+}
+
+static int init_sqlite_adapter(struct faultd_module *module,
+ struct faultd_config *config,
+ sd_event *event_loop)
+{
+ return 0;
+}
+
+static int sqlite_store(struct faultd_database_adapter *adapter, struct faultd_object *obj, faultd_oid_t *oid)
+{
+ return 0;
+}
+
+static int sqlite_get_by_oid(struct faultd_database_adapter *adapter, faultd_oid_t *oid, struct faultd_object *result)
+{
+ return -ENOENT;
+}
+
+static int sqlite_load(struct faultd_database_adapter *adapter, struct faultd_object *query,
+ struct faultd_object *hints, struct faultd_object *result, uint32_t *nr)
+{
+ return 0;
+}
+
+static int sqlite_get_well_known_oid(const char *name, faultd_oid_t *oid)
+{
+ return -ENOENT;
+}
+
+static bool sqlite_is_oid_valid(faultd_oid_t *oid)
+{
+ return true;
+}
+
+static struct sqlite_adapter sqlite_adapter = {
+ .database_adapter = {
+ .module = {
+ .name = "sqlite_dbadapter",
+ .type = FAULTD_MODULE_TYPE_DBADAPTER,
+ .init = init_sqlite_adapter,
+ .cleanup = cleanup_sqlite_adapter,
+ .node = LIST_HEAD_INIT(sqlite_adapter.database_adapter.module.node),
+ },
+ .id_key = ID_KEY,
+ .store = sqlite_store,
+ .get_by_oid = sqlite_get_by_oid,
+ .load = sqlite_load,
+ .get_well_known_oid = sqlite_get_well_known_oid,
+ .is_oid_valid = sqlite_is_oid_valid,
+ }
+};
+
+FAULTD_MODULE_REGISTER(&sqlite_adapter.database_adapter.module);