From fef008b549c9c6d6ee1e564312787c3d3f14f0c0 Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Wed, 16 May 2018 00:58:28 +0200 Subject: Convert the binding to use the controller Ease Time series DB abstraction layer by using Dyn API that implemente the API defined by the JSON schema. Change-Id: I67de4fbca10048201fdd2da683732a5f4f5b5368 Signed-off-by: Romain Forlot --- src/harvester.c | 97 --------------------------------------------------------- 1 file changed, 97 deletions(-) delete mode 100644 src/harvester.c (limited to 'src/harvester.c') diff --git a/src/harvester.c b/src/harvester.c deleted file mode 100644 index 1d4d9a6..0000000 --- a/src/harvester.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 2018 "IoT.bzh" - * Author "Romain Forlot" - * - * 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. - */ - -#define _GNU_SOURCE -#include "harvester.h" -#include "harvester-apidef.h" - -#include "plugins/tsdb.h" -#include "curl-wrap.h" -#include "wrap-json.h" - -CURL* (*tsdb_write)(const char* host, const char *port, json_object *metric); -void (*write_curl_cb)(void *closure, int status, CURL *curl, const char *result, size_t size); - -struct reader_args r_args = {NULL, NULL, 1000000}; - -int do_write(struct afb_req req, const char* host, const char *port, json_object *metric) -{ - CURL *curl_request; - - curl_request = tsdb_write(host, port, metric); - curl_wrap_do(curl_request, write_curl_cb, &req); - - return 0; -} - -void afv_write(struct afb_req req) -{ - const char *port = NULL; - const char *host = NULL; - - json_object *req_args = afb_req_json(req), - *portJ = NULL, - *metric = NULL; - - if(wrap_json_unpack(req_args, "{s?s,s?o,so!}", - "host", &host, - "port", &portJ, - "metric", &metric) || ! metric) - afb_req_fail(req, "Failed", "Error processing arguments. Miss metric\ -JSON object or malformed"); - else { - port = json_object_is_type(portJ, json_type_null) ? - NULL : json_object_to_json_string(portJ); - if(do_write(req, host, port, metric)) - afb_req_fail(req, "Failed", "Error processing metric JSON object.\ -Malformed !"); - } -} - -void afv_auth(struct afb_req request) -{ - afb_req_session_set_LOA(request, 1); - afb_req_success(request, NULL, NULL); -} - -int init() -{ - int tsdb_available = 0; - - if(curl_global_init(CURL_GLOBAL_DEFAULT) != 0) { - AFB_ERROR("Something went wrong initiliazing libcurl. Abort"); - return ERROR; - } - - tsdb_available = db_ping(); - switch (tsdb_available) { - case INFLUX: - tsdb_write = influxdb_write; - write_curl_cb = influxdb_write_curl_cb; - /*if(influxdb_reader(&r_args) != 0) { - AFB_ERROR("Problem initiating reader timer. Abort"); - return ERROR; - }*/ - break; - default: - AFB_ERROR("No Time Series Database found. Abort"); - return ERROR; - break; - } - /* TODO:*/ - return 0; -} -- cgit 1.2.3-korg