diff options
author | Andrew Moss <1043609+amoss@users.noreply.github.com> | 2020-03-10 12:21:32 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-10 12:21:32 +0100 |
commit | 4acc880bab388c6ea61a1016dcbc44e387dd932c (patch) | |
tree | b553a306024f2c5048e81db934902d8673e2c83f /aclk/agent_cloud_link.h | |
parent | 3e272d1cffae08312496b2451adea7115a7aae8f (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.h | 68 |
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 |