mirror of
https://github.com/emqx/neuron.git
synced 2026-10-18 13:41:22 +08:00
feat(core): load template data
This commit is contained in:
@@ -121,6 +121,10 @@ neu_manager_t *neu_manager_create()
|
||||
}
|
||||
utarray_free(single_plugins);
|
||||
|
||||
if (manager_load_template(manager) != 0) {
|
||||
nlog_warn("load template error");
|
||||
}
|
||||
|
||||
manager_load_node(manager);
|
||||
while (neu_node_manager_exist_uninit(manager->node_manager)) {
|
||||
usleep(1000 * 100);
|
||||
|
||||
+66
-1
@@ -390,4 +390,69 @@ int manager_load_subscribe(neu_manager_t *manager)
|
||||
|
||||
utarray_free(nodes);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
static int load_template_group_and_tags(neu_manager_t *manager,
|
||||
const char * tmpl_name)
|
||||
{
|
||||
int rv = 0;
|
||||
UT_array *group_infos = NULL;
|
||||
|
||||
rv = neu_persister_load_template_groups(tmpl_name, &group_infos);
|
||||
if (0 != rv) {
|
||||
nlog_warn("load template %s group fail", tmpl_name);
|
||||
return rv;
|
||||
}
|
||||
|
||||
utarray_foreach(group_infos, neu_persist_group_info_t *, p)
|
||||
{
|
||||
neu_manager_add_template_group(manager, tmpl_name, p->name,
|
||||
p->interval);
|
||||
|
||||
UT_array *tags = NULL;
|
||||
rv = neu_persister_load_template_tags(tmpl_name, p->name, &tags);
|
||||
if (0 != rv) {
|
||||
nlog_warn("load template:%s group:%s tags fail", tmpl_name,
|
||||
p->name);
|
||||
continue;
|
||||
}
|
||||
|
||||
neu_manager_add_template_tags(manager, tmpl_name, p->name,
|
||||
utarray_len(tags), utarray_front(tags),
|
||||
NULL);
|
||||
|
||||
utarray_free(tags);
|
||||
}
|
||||
|
||||
utarray_free(group_infos);
|
||||
return rv;
|
||||
}
|
||||
|
||||
int manager_load_template(neu_manager_t *manager)
|
||||
{
|
||||
int rv = 0;
|
||||
UT_array *tmpl_infos = NULL;
|
||||
|
||||
rv = neu_persister_load_templates(&tmpl_infos);
|
||||
if (0 != rv) {
|
||||
nlog_error("failed to load template infos");
|
||||
return -1;
|
||||
}
|
||||
|
||||
utarray_foreach(tmpl_infos, neu_persist_template_info_t *, tmpl_info)
|
||||
{
|
||||
rv = neu_manager_add_template(manager, tmpl_info->name,
|
||||
tmpl_info->plugin_name, 0, NULL);
|
||||
const char *ok_or_err = (0 == rv) ? "success" : "fail";
|
||||
nlog_info("load template name:%s plugin:%s %s", tmpl_info->name,
|
||||
tmpl_info->plugin_name, ok_or_err);
|
||||
if (0 != rv) {
|
||||
continue; // ignore error, load as much data as possible
|
||||
}
|
||||
|
||||
load_template_group_and_tags(manager, tmpl_info->name);
|
||||
}
|
||||
|
||||
utarray_free(tmpl_infos);
|
||||
return rv;
|
||||
}
|
||||
|
||||
@@ -62,5 +62,6 @@ void manager_storage_del_template_tags(const char *tmpl, const char *group,
|
||||
int manager_load_plugin(neu_manager_t *manager);
|
||||
int manager_load_node(neu_manager_t *manager);
|
||||
int manager_load_subscribe(neu_manager_t *manager);
|
||||
int manager_load_template(neu_manager_t *manager);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user