diff options
author | Emmanuel Vasilakis <mrzammler@mm.st> | 2022-07-07 21:50:44 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-07 21:50:44 +0300 |
commit | 19d9a0030db7d8ff6e43f2ff76cea7f9761c6cd7 (patch) | |
tree | f73fba6588c8e8628a3bf5993f3af0d4c62566ff /aclk | |
parent | 151a6038b63e8739bfed9d62c63165c17426a403 (diff) |
UpdateNodeCollectors message (#13330)
* add new aclk-schemas. remove services related
* add updatenodecollectors message
* build with --disable-cloud
Diffstat (limited to 'aclk')
m--------- | aclk/aclk-schemas | 0 | ||||
-rw-r--r-- | aclk/aclk_charts_api.c | 9 | ||||
-rw-r--r-- | aclk/aclk_charts_api.h | 2 | ||||
-rw-r--r-- | aclk/aclk_query.c | 1 | ||||
-rw-r--r-- | aclk/aclk_query_queue.c | 1 | ||||
-rw-r--r-- | aclk/aclk_query_queue.h | 1 | ||||
-rw-r--r-- | aclk/aclk_util.c | 2 | ||||
-rw-r--r-- | aclk/aclk_util.h | 3 | ||||
-rw-r--r-- | aclk/schema-wrappers/node_info.cc | 27 | ||||
-rw-r--r-- | aclk/schema-wrappers/node_info.h | 16 |
10 files changed, 55 insertions, 7 deletions
diff --git a/aclk/aclk-schemas b/aclk/aclk-schemas -Subproject d8342ee6d932c152a78c9fe886281fe28170a6c +Subproject fa46ccca237a9bdb613b3b1f2809a25b7b45c7c diff --git a/aclk/aclk_charts_api.c b/aclk/aclk_charts_api.c index 4e1c466e87..51d8dad58c 100644 --- a/aclk/aclk_charts_api.c +++ b/aclk/aclk_charts_api.c @@ -66,3 +66,12 @@ void aclk_update_node_info(struct update_node_info *info) query->data.bin_payload.msg_name = "UpdateNodeInfo"; QUEUE_IF_PAYLOAD_PRESENT(query); } + +void aclk_update_node_collectors(struct update_node_collectors *collectors) +{ + aclk_query_t query = aclk_query_new(UPDATE_NODE_COLLECTORS); + query->data.bin_payload.topic = ACLK_TOPICID_NODE_COLLECTORS; + query->data.bin_payload.payload = generate_update_node_collectors_message(&query->data.bin_payload.size, collectors); + query->data.bin_payload.msg_name = "UpdateNodeCollectors"; + QUEUE_IF_PAYLOAD_PRESENT(query); +} diff --git a/aclk/aclk_charts_api.h b/aclk/aclk_charts_api.h index 305fe4f74f..71f07dd338 100644 --- a/aclk/aclk_charts_api.h +++ b/aclk/aclk_charts_api.h @@ -17,4 +17,6 @@ void aclk_retention_updated(struct retention_updated *data); void aclk_update_node_info(struct update_node_info *info); +void aclk_update_node_collectors(struct update_node_collectors *collectors); + #endif /* ACLK_CHARTS_H */ diff --git a/aclk/aclk_query.c b/aclk/aclk_query.c index f722551b0c..84dcc111a8 100644 --- a/aclk/aclk_query.c +++ b/aclk/aclk_query.c @@ -277,6 +277,7 @@ const char *aclk_query_get_name(aclk_query_type_t qt) case ALARM_LOG_HEALTH: return "alarm_log_health"; case ALARM_PROVIDE_CFG: return "provide_alarm_config"; case ALARM_SNAPSHOT: return "alarm_snapshot"; + case UPDATE_NODE_COLLECTORS: return "update_node_collectors"; default: error_report("Unknown query type used %d", (int) qt); return "unknown"; diff --git a/aclk/aclk_query_queue.c b/aclk/aclk_query_queue.c index 8ac14305d6..61484288e9 100644 --- a/aclk/aclk_query_queue.c +++ b/aclk/aclk_query_queue.c @@ -121,6 +121,7 @@ void aclk_query_free(aclk_query_t query) case ALARM_LOG_HEALTH: case ALARM_PROVIDE_CFG: case ALARM_SNAPSHOT: + case UPDATE_NODE_COLLECTORS: if (!use_mqtt_5) freez(query->data.bin_payload.payload); break; diff --git a/aclk/aclk_query_queue.h b/aclk/aclk_query_queue.h index 523841c919..1f03d54fd7 100644 --- a/aclk/aclk_query_queue.h +++ b/aclk/aclk_query_queue.h @@ -22,6 +22,7 @@ typedef enum { ALARM_LOG_HEALTH, ALARM_PROVIDE_CFG, ALARM_SNAPSHOT, + UPDATE_NODE_COLLECTORS, ACLK_QUERY_TYPE_COUNT // always keep this as last } aclk_query_type_t; diff --git a/aclk/aclk_util.c b/aclk/aclk_util.c index 9809620c74..6412fcd0a2 100644 --- a/aclk/aclk_util.c +++ b/aclk/aclk_util.c @@ -123,6 +123,7 @@ struct topic_name { { .id = ACLK_TOPICID_ALARM_HEALTH, .name = "alarm-health" }, { .id = ACLK_TOPICID_ALARM_CONFIG, .name = "alarm-config" }, { .id = ACLK_TOPICID_ALARM_SNAPSHOT, .name = "alarm-snapshot" }, + { .id = ACLK_TOPICID_NODE_COLLECTORS, .name = "node-instance-collectors" }, { .id = ACLK_TOPICID_UNKNOWN, .name = NULL } }; @@ -145,6 +146,7 @@ enum aclk_topics compulsory_topics[] = { ACLK_TOPICID_ALARM_HEALTH, ACLK_TOPICID_ALARM_CONFIG, ACLK_TOPICID_ALARM_SNAPSHOT, + ACLK_TOPICID_NODE_COLLECTORS, ACLK_TOPICID_UNKNOWN }; diff --git a/aclk/aclk_util.h b/aclk/aclk_util.h index a23c8fbd67..186abd8a08 100644 --- a/aclk/aclk_util.h +++ b/aclk/aclk_util.h @@ -87,7 +87,8 @@ enum aclk_topics { ACLK_TOPICID_ALARM_LOG = 14, ACLK_TOPICID_ALARM_HEALTH = 15, ACLK_TOPICID_ALARM_CONFIG = 16, - ACLK_TOPICID_ALARM_SNAPSHOT = 17 + ACLK_TOPICID_ALARM_SNAPSHOT = 17, + ACLK_TOPICID_NODE_COLLECTORS = 18 }; const char *aclk_get_topic(enum aclk_topics topic); diff --git a/aclk/schema-wrappers/node_info.cc b/aclk/schema-wrappers/node_info.cc index e0d6d34f01..2a05ddaba7 100644 --- a/aclk/schema-wrappers/node_info.cc +++ b/aclk/schema-wrappers/node_info.cc @@ -55,9 +55,6 @@ static int generate_node_info(nodeinstance::info::v1::NodeInfo *info, struct acl if (data->custom_info) info->set_custom_info(data->custom_info); - for (size_t i = 0; i < data->service_count; i++) - info->add_services(data->services[i]); - if (data->machine_guid) info->set_machine_guid(data->machine_guid); @@ -113,3 +110,27 @@ char *generate_update_node_info_message(size_t *len, struct update_node_info *in return bin; } + +char *generate_update_node_collectors_message(size_t *len, struct update_node_collectors *upd_node_collectors) +{ + nodeinstance::info::v1::UpdateNodeCollectors msg; + + msg.set_node_id(upd_node_collectors->node_id); + msg.set_claim_id(upd_node_collectors->claim_id); + + void *colls; + dfe_start_read(upd_node_collectors->node_collectors, colls) { + struct collector_info *c =(struct collector_info *)colls; + nodeinstance::info::v1::CollectorInfo *col = msg.add_collectors(); + col->set_plugin(c->plugin); + col->set_module(c->module); + } + dfe_done(colls); + + *len = PROTO_COMPAT_MSG_SIZE(msg); + char *bin = (char*)malloc(*len); + if (bin) + msg.SerializeToArray(bin, *len); + + return bin; +} diff --git a/aclk/schema-wrappers/node_info.h b/aclk/schema-wrappers/node_info.h index d585f3f2d0..e8ac2d7c60 100644 --- a/aclk/schema-wrappers/node_info.h +++ b/aclk/schema-wrappers/node_info.h @@ -50,9 +50,6 @@ struct aclk_node_info { char *custom_info; - char **services; - size_t service_count; - char *machine_guid; DICTIONARY *host_labels_ptr; @@ -74,8 +71,21 @@ struct update_node_info { struct capability *node_instance_capabilities; }; +struct collector_info { + char *module; + char *plugin; +}; + +struct update_node_collectors { + char *claim_id; + char *node_id; + DICTIONARY *node_collectors; +}; + char *generate_update_node_info_message(size_t *len, struct update_node_info *info); +char *generate_update_node_collectors_message(size_t *len, struct update_node_collectors *collectors); + #ifdef __cplusplus } #endif |