diff options
author | Romain Forlot <romain.forlot@iot.bzh> | 2018-05-16 00:58:28 +0200 |
---|---|---|
committer | Sebastien Douheret <sebastien.douheret@iot.bzh> | 2018-07-10 23:41:14 +0200 |
commit | fef008b549c9c6d6ee1e564312787c3d3f14f0c0 (patch) | |
tree | 43ab4879055ef9e4198705be7cca6fe30177593f /src/harvester.c | |
parent | daf148db51e3abe2d7cfbeb7224124f64b8fc4e3 (diff) |
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 <romain.forlot@iot.bzh>
Diffstat (limited to 'src/harvester.c')
-rw-r--r-- | src/harvester.c | 97 |
1 files changed, 0 insertions, 97 deletions
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" <romain.forlot@iot.bzh> - * - * 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; -} |