Check for scope in the metadata
This commit is contained in:
parent
2b3e195c20
commit
d34c54b31c
@ -17,6 +17,7 @@ package org.thingsboard.rule.engine.telemetry;
|
|||||||
|
|
||||||
import com.google.gson.JsonParser;
|
import com.google.gson.JsonParser;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
import org.thingsboard.rule.engine.api.RuleNode;
|
import org.thingsboard.rule.engine.api.RuleNode;
|
||||||
import org.thingsboard.rule.engine.api.TbContext;
|
import org.thingsboard.rule.engine.api.TbContext;
|
||||||
import org.thingsboard.rule.engine.api.TbNode;
|
import org.thingsboard.rule.engine.api.TbNode;
|
||||||
@ -51,6 +52,8 @@ public class TbMsgAttributesNode implements TbNode {
|
|||||||
|
|
||||||
private TbMsgAttributesNodeConfiguration config;
|
private TbMsgAttributesNodeConfiguration config;
|
||||||
|
|
||||||
|
private static final String SCOPE = "scope";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init(TbContext ctx, TbNodeConfiguration configuration) throws TbNodeException {
|
public void init(TbContext ctx, TbNodeConfiguration configuration) throws TbNodeException {
|
||||||
this.config = TbNodeUtils.convert(configuration, TbMsgAttributesNodeConfiguration.class);
|
this.config = TbNodeUtils.convert(configuration, TbMsgAttributesNodeConfiguration.class);
|
||||||
@ -64,8 +67,12 @@ public class TbMsgAttributesNode implements TbNode {
|
|||||||
}
|
}
|
||||||
String src = msg.getData();
|
String src = msg.getData();
|
||||||
Set<AttributeKvEntry> attributes = JsonConverter.convertToAttributes(new JsonParser().parse(src));
|
Set<AttributeKvEntry> attributes = JsonConverter.convertToAttributes(new JsonParser().parse(src));
|
||||||
msg.getMetaData().putValue("scope", config.getScope());
|
String scope = msg.getMetaData().getValue(SCOPE);
|
||||||
ctx.getTelemetryService().saveAndNotify(ctx.getTenantId(), msg.getOriginator(), config.getScope(), new ArrayList<>(attributes), new TelemetryNodeCallback(ctx, msg));
|
if (StringUtils.isEmpty(scope)) {
|
||||||
|
scope = config.getScope();
|
||||||
|
msg.getMetaData().putValue("scope", scope);
|
||||||
|
}
|
||||||
|
ctx.getTelemetryService().saveAndNotify(ctx.getTenantId(), msg.getOriginator(), scope, new ArrayList<>(attributes), new TelemetryNodeCallback(ctx, msg));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user