summaryrefslogtreecommitdiffstats
path: root/aclk/agent_cloud_link.h
diff options
context:
space:
mode:
authorAndrew Moss <1043609+amoss@users.noreply.github.com>2020-03-10 12:21:32 +0100
committerGitHub <noreply@github.com>2020-03-10 12:21:32 +0100
commit4acc880bab388c6ea61a1016dcbc44e387dd932c (patch)
treeb553a306024f2c5048e81db934902d8673e2c83f /aclk/agent_cloud_link.h
parent3e272d1cffae08312496b2451adea7115a7aae8f (diff)
Improve ACLK according to results of the smoke-test. (#8358)
* Cleaning up the ACLK part 2 (#8187) * Initial proxy support implementation (#8146) * Implement the ACLK Challenge-Response Authentication (#8317) Co-authored-by: Timo <6674623+underhood@users.noreply.github.com>
Diffstat (limited to 'aclk/agent_cloud_link.h')
-rw-r--r--aclk/agent_cloud_link.h68
1 files changed, 31 insertions, 37 deletions
diff --git a/aclk/agent_cloud_link.h b/aclk/agent_cloud_link.h
index 1b6f310689..f19c5c3d11 100644
--- a/aclk/agent_cloud_link.h
+++ b/aclk/agent_cloud_link.h
@@ -8,11 +8,6 @@
#define ACLK_VERSION 1
#define ACLK_THREAD_NAME "ACLK_Query"
-#define ACLK_JSON_IN_MSGID "msg-id"
-#define ACLK_JSON_IN_TYPE "type"
-#define ACLK_JSON_IN_VERSION "version"
-#define ACLK_JSON_IN_TOPIC "callback-topic"
-#define ACLK_JSON_IN_URL "payload"
#define ACLK_CHART_TOPIC "chart"
#define ACLK_ALARMS_TOPIC "alarms"
#define ACLK_METADATA_TOPIC "meta"
@@ -25,26 +20,23 @@
#define ACLK_INITIALIZATION_SLEEP_WAIT 1 // Wait time @ spin lock for MQTT initialization in seconds
#define ACLK_QOS 1
#define ACLK_PING_INTERVAL 60
-#define ACLK_LOOP_TIMEOUT 5 // seconds to wait for operations in the library loop
+#define ACLK_LOOP_TIMEOUT 5 // seconds to wait for operations in the library loop
-#define ACLK_MAX_TOPIC 255
+#define ACLK_MAX_TOPIC 255
#define ACLK_RECONNECT_DELAY 1 // reconnect delay -- with backoff stragegy fow now
#define ACLK_STABLE_TIMEOUT 10 // Minimum delay to mark AGENT as stable
-#define ACLK_DEFAULT_PORT 9002
+#define ACLK_DEFAULT_PORT 9002
#define ACLK_DEFAULT_HOST "localhost"
-#define CONFIG_SECTION_ACLK "agent_cloud_link"
-
struct aclk_request {
- char *type_id;
- char *msg_id;
- char *callback_topic;
- char *payload;
- int version;
+ char *type_id;
+ char *msg_id;
+ char *callback_topic;
+ char *payload;
+ int version;
};
-
typedef enum aclk_cmd {
ACLK_CMD_CLOUD,
ACLK_CMD_ONCONNECT,
@@ -56,24 +48,29 @@ typedef enum aclk_cmd {
ACLK_CMD_MAX
} ACLK_CMD;
-typedef enum aclk_init_action {
- ACLK_INIT,
- ACLK_REINIT
-} ACLK_INIT_ACTION;
+typedef enum aclk_metadata_state {
+ ACLK_METADATA_REQUIRED,
+ ACLK_METADATA_CMD_QUEUED,
+ ACLK_METADATA_SENT
+} ACLK_METADATA_STATE;
+
+typedef enum agent_state {
+ AGENT_INITIALIZING,
+ AGENT_STABLE
+} AGENT_STATE;
+typedef enum aclk_init_action { ACLK_INIT, ACLK_REINIT } ACLK_INIT_ACTION;
void *aclk_main(void *ptr);
-#define NETDATA_ACLK_HOOK \
- { \
- .name = "ACLK_Main", \
- .config_section = NULL, \
- .config_name = NULL, \
- .enabled = 1, \
- .thread = NULL, \
- .init_routine = NULL, \
- .start_routine = aclk_main \
- },
+#define NETDATA_ACLK_HOOK \
+ { .name = "ACLK_Main", \
+ .config_section = NULL, \
+ .config_name = NULL, \
+ .enabled = 1, \
+ .thread = NULL, \
+ .init_routine = NULL, \
+ .start_routine = aclk_main },
extern int aclk_send_message(char *sub_topic, char *message, char *msg_id);
@@ -83,23 +80,21 @@ extern int aclk_send_message(char *sub_topic, char *message, char *msg_id);
extern char *is_agent_claimed(void);
char *create_uuid();
-
// callbacks for agent cloud link
int aclk_subscribe(char *topic, int qos);
void aclk_shutdown();
int cloud_to_agent_parse(JSON_ENTRY *e);
-void aclk_disconnect(void *conn);
-void aclk_connect(void *conn);
+void aclk_disconnect();
+void aclk_connect();
int aclk_send_metadata();
int aclk_send_info_metadata();
int aclk_wait_for_initialization();
char *create_publish_base_topic();
-void aclk_try_to_connect();
int aclk_send_single_chart(char *host, char *chart);
int aclk_queue_query(char *token, char *data, char *msg_type, char *query, int run_after, int internal, ACLK_CMD cmd);
-struct aclk_query *aclk_query_find(char *token, char *data, char *msg_id,
- char *query, ACLK_CMD cmd, struct aclk_query **last_query);
+struct aclk_query *
+aclk_query_find(char *token, char *data, char *msg_id, char *query, ACLK_CMD cmd, struct aclk_query **last_query);
int aclk_update_chart(RRDHOST *host, char *chart_name, ACLK_CMD aclk_cmd);
int aclk_update_alarm(RRDHOST *host, ALARM_ENTRY *ae);
void aclk_create_header(BUFFER *dest, char *type, char *msg_id);
@@ -116,5 +111,4 @@ extern void health_alarm_entry2json_nolock(BUFFER *wb, ALARM_ENTRY *ae, RRDHOST
void aclk_single_update_enable();
void aclk_single_update_disable();
-
#endif //NETDATA_AGENT_CLOUD_LINK_H