mirror of
https://github.com/emqx/neuron.git
synced 2026-10-18 21:50:42 +08:00
export app: include static tags
This commit is contained in:
@@ -1712,12 +1712,17 @@ static int get_app_subscriptions_resp(context_t * ctx,
|
||||
grps[index].driver = strdup(group->driver);
|
||||
grps[index].group = strdup(group->group);
|
||||
grps[index].params = group->params ? strdup(group->params) : NULL;
|
||||
grps[index].static_tags =
|
||||
group->static_tags ? strdup(group->static_tags) : NULL;
|
||||
|
||||
if (NULL == grps[index].driver || NULL == grps[index].group) {
|
||||
for (int j = 0; j <= index; ++j) {
|
||||
free(grps[j].driver);
|
||||
free(grps[j].group);
|
||||
free(grps[j].params);
|
||||
if (grps[j].static_tags) {
|
||||
free(grps[j].static_tags);
|
||||
}
|
||||
}
|
||||
free(grps);
|
||||
rv = NEU_ERR_EINTERNAL;
|
||||
@@ -1817,8 +1822,10 @@ static int add_app_subscription(context_t *ctx, neu_json_app_t *app,
|
||||
strcpy(cmd.app, app->node.name);
|
||||
strcpy(cmd.driver, grp->driver);
|
||||
strcpy(cmd.group, grp->group);
|
||||
cmd.params = grp->params;
|
||||
grp->params = NULL;
|
||||
cmd.params = grp->params;
|
||||
cmd.static_tags = grp->static_tags;
|
||||
grp->params = NULL;
|
||||
grp->static_tags = NULL;
|
||||
|
||||
if (0 != neu_plugin_op(plugin, header, &cmd)) {
|
||||
return NEU_ERR_IS_BUSY;
|
||||
|
||||
@@ -589,6 +589,9 @@ static void fini_app_group(neu_json_app_group_t *grp)
|
||||
free(grp->driver);
|
||||
free(grp->group);
|
||||
free(grp->params);
|
||||
if (grp->static_tags) {
|
||||
free(grp->static_tags);
|
||||
}
|
||||
}
|
||||
|
||||
int neu_json_encode_app(void *node_json, void *param)
|
||||
@@ -644,6 +647,15 @@ int neu_json_encode_app(void *node_json, void *param)
|
||||
}
|
||||
}
|
||||
|
||||
if (grp->static_tags && strlen(grp->static_tags) > 0) {
|
||||
if (0 !=
|
||||
neu_json_load_key(grp_json, "static_tags", grp->static_tags,
|
||||
false)) {
|
||||
json_decref(grp_json);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (0 != json_array_append_new(groups_json, grp_json)) {
|
||||
return -1;
|
||||
}
|
||||
@@ -715,6 +727,8 @@ int neu_json_decode_app_json(void *node_json, neu_json_app_t *app_p)
|
||||
groups[i].driver = grp_elems[0].v.val_str;
|
||||
groups[i].group = grp_elems[1].v.val_str;
|
||||
neu_json_dump_key(grp_json, "params", &groups[i].params, false);
|
||||
neu_json_dump_key(grp_json, "static_tags", &groups[i].static_tags,
|
||||
false);
|
||||
}
|
||||
|
||||
app_p->subscriptions.n_group = n_group;
|
||||
|
||||
@@ -101,6 +101,7 @@ typedef struct {
|
||||
char *driver;
|
||||
char *group;
|
||||
char *params;
|
||||
char *static_tags;
|
||||
} neu_json_app_group_t;
|
||||
|
||||
typedef struct {
|
||||
|
||||
Reference in New Issue
Block a user