added RPC message types
This commit is contained in:
parent
bafbf7b239
commit
6b546a459e
@ -19,7 +19,7 @@ import com.fasterxml.jackson.databind.JsonNode;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.thingsboard.server.common.data.audit.ActionType;
|
||||
import org.thingsboard.common.util.JacksonUtil;
|
||||
import org.thingsboard.server.common.data.id.DeviceId;
|
||||
import org.thingsboard.server.common.data.id.RpcId;
|
||||
import org.thingsboard.server.common.data.id.TenantId;
|
||||
@ -27,9 +27,11 @@ import org.thingsboard.server.common.data.page.PageData;
|
||||
import org.thingsboard.server.common.data.page.PageLink;
|
||||
import org.thingsboard.server.common.data.rpc.Rpc;
|
||||
import org.thingsboard.server.common.data.rpc.RpcStatus;
|
||||
import org.thingsboard.server.common.msg.TbMsg;
|
||||
import org.thingsboard.server.common.msg.TbMsgMetaData;
|
||||
import org.thingsboard.server.dao.rpc.RpcService;
|
||||
import org.thingsboard.server.queue.util.TbCoreComponent;
|
||||
import org.thingsboard.server.service.action.RuleEngineEntityActionService;
|
||||
import org.thingsboard.server.service.queue.TbClusterService;
|
||||
|
||||
@TbCoreComponent
|
||||
@Service
|
||||
@ -37,11 +39,11 @@ import org.thingsboard.server.service.action.RuleEngineEntityActionService;
|
||||
@Slf4j
|
||||
public class TbRpcService {
|
||||
private final RpcService rpcService;
|
||||
private final RuleEngineEntityActionService ruleEngineEntityActionService;
|
||||
private final TbClusterService tbClusterService;
|
||||
|
||||
public void save(TenantId tenantId, Rpc rpc) {
|
||||
Rpc saved = rpcService.save(tenantId, rpc);
|
||||
ruleEngineEntityActionService.pushEntityActionToRuleEngine(saved.getId(), saved, tenantId, null, rpc.getId() == null ? ActionType.ADDED : ActionType.UPDATED, null);
|
||||
pushRpcMsgToRuleEngine(tenantId, saved);
|
||||
}
|
||||
|
||||
public void save(TenantId tenantId, RpcId rpcId, RpcStatus newStatus, JsonNode response) {
|
||||
@ -52,12 +54,17 @@ public class TbRpcService {
|
||||
foundRpc.setResponse(response);
|
||||
}
|
||||
Rpc saved = rpcService.save(tenantId, foundRpc);
|
||||
ruleEngineEntityActionService.pushEntityActionToRuleEngine(saved.getId(), saved, tenantId, null, ActionType.UPDATED, null);
|
||||
pushRpcMsgToRuleEngine(tenantId, saved);
|
||||
} else {
|
||||
log.warn("[{}] Failed to update RPC status because RPC was already deleted", rpcId);
|
||||
}
|
||||
}
|
||||
|
||||
private void pushRpcMsgToRuleEngine(TenantId tenantId, Rpc rpc) {
|
||||
TbMsg msg = TbMsg.newMsg("RPC_" + rpc.getStatus().name(), rpc.getDeviceId(), TbMsgMetaData.EMPTY, JacksonUtil.toString(rpc));
|
||||
tbClusterService.pushMsgToRuleEngine(tenantId, rpc.getId(), msg, null);
|
||||
}
|
||||
|
||||
public Rpc findRpcById(TenantId tenantId, RpcId rpcId) {
|
||||
return rpcService.findById(tenantId, rpcId);
|
||||
}
|
||||
|
||||
@ -76,6 +76,13 @@ public class DataConstants {
|
||||
|
||||
public static final String RPC_CALL_FROM_SERVER_TO_DEVICE = "RPC_CALL_FROM_SERVER_TO_DEVICE";
|
||||
|
||||
public static final String RPC_QUEUED = "RPC_QUEUED";
|
||||
public static final String RPC_SENT = "RPC_SENT";
|
||||
public static final String RPC_DELIVERED = "RPC_DELIVERED";
|
||||
public static final String RPC_SUCCESSFUL = "RPC_SUCCESSFUL";
|
||||
public static final String RPC_TIMEOUT = "RPC_TIMEOUT";
|
||||
public static final String RPC_FAILED = "RPC_FAILED";
|
||||
|
||||
public static final String DEFAULT_SECRET_KEY = "";
|
||||
public static final String SECRET_KEY_FIELD_NAME = "secretKey";
|
||||
public static final String DURATION_MS_FIELD_NAME = "durationMs";
|
||||
|
||||
@ -33,8 +33,8 @@ import org.thingsboard.server.common.msg.session.SessionMsgType;
|
||||
type = ComponentType.FILTER,
|
||||
name = "message type switch",
|
||||
configClazz = EmptyNodeConfiguration.class,
|
||||
relationTypes = {"Post attributes", "Post telemetry", "RPC Request from Device", "RPC Request to Device", "Activity Event", "Inactivity Event",
|
||||
"Connect Event", "Disconnect Event", "Entity Created", "Entity Updated", "Entity Deleted", "Entity Assigned",
|
||||
relationTypes = {"Post attributes", "Post telemetry", "RPC Request from Device", "RPC Request to Device", "RPC Queued", "RPC Sent", "RPC Delivered", "RPC Successful", "RPC Timeout", "RPC Failed",
|
||||
"Activity Event", "Inactivity Event", "Connect Event", "Disconnect Event", "Entity Created", "Entity Updated", "Entity Deleted", "Entity Assigned",
|
||||
"Entity Unassigned", "Attributes Updated", "Attributes Deleted", "Alarm Acknowledged", "Alarm Cleared", "Other", "Entity Assigned From Tenant", "Entity Assigned To Tenant",
|
||||
"Timeseries Updated", "Timeseries Deleted"},
|
||||
nodeDescription = "Route incoming messages by Message Type",
|
||||
@ -95,6 +95,18 @@ public class TbMsgTypeSwitchNode implements TbNode {
|
||||
relationType = "Timeseries Updated";
|
||||
} else if (msg.getType().equals(DataConstants.TIMESERIES_DELETED)) {
|
||||
relationType = "Timeseries Deleted";
|
||||
} else if (msg.getType().equals(DataConstants.RPC_QUEUED)) {
|
||||
relationType = "RPC Queued";
|
||||
} else if (msg.getType().equals(DataConstants.RPC_SENT)) {
|
||||
relationType = "RPC Sent";
|
||||
} else if (msg.getType().equals(DataConstants.RPC_DELIVERED)) {
|
||||
relationType = "RPC Delivered";
|
||||
} else if (msg.getType().equals(DataConstants.RPC_SUCCESSFUL)) {
|
||||
relationType = "RPC Successful";
|
||||
} else if (msg.getType().equals(DataConstants.RPC_TIMEOUT)) {
|
||||
relationType = "RPC Timeout";
|
||||
} else if (msg.getType().equals(DataConstants.RPC_FAILED)) {
|
||||
relationType = "RPC Failed";
|
||||
} else {
|
||||
relationType = "Other";
|
||||
}
|
||||
|
||||
@ -352,7 +352,13 @@ export enum MessageType {
|
||||
ATTRIBUTES_UPDATED = 'ATTRIBUTES_UPDATED',
|
||||
ATTRIBUTES_DELETED = 'ATTRIBUTES_DELETED',
|
||||
TIMESERIES_UPDATED = 'TIMESERIES_UPDATED',
|
||||
TIMESERIES_DELETED = 'TIMESERIES_DELETED'
|
||||
TIMESERIES_DELETED = 'TIMESERIES_DELETED',
|
||||
RPC_QUEUED = 'RPC_QUEUED',
|
||||
RPC_SENT = 'RPC_SENT',
|
||||
RPC_DELIVERED = 'RPC_SENT',
|
||||
RPC_SUCCESSFUL = 'RPC_DELIVERED',
|
||||
RPC_TIMEOUT = 'RPC_TIMEOUT',
|
||||
RPC_FAILED = 'RPC_FAILED'
|
||||
}
|
||||
|
||||
export const messageTypeNames = new Map<MessageType, string>(
|
||||
@ -373,7 +379,13 @@ export const messageTypeNames = new Map<MessageType, string>(
|
||||
[MessageType.ATTRIBUTES_UPDATED, 'Attributes Updated'],
|
||||
[MessageType.ATTRIBUTES_DELETED, 'Attributes Deleted'],
|
||||
[MessageType.TIMESERIES_UPDATED, 'Timeseries Updated'],
|
||||
[MessageType.TIMESERIES_DELETED, 'Timeseries Deleted']
|
||||
[MessageType.TIMESERIES_DELETED, 'Timeseries Deleted'],
|
||||
[MessageType.RPC_QUEUED, 'RPC Queued'],
|
||||
[MessageType.RPC_SENT, 'RPC Sent'],
|
||||
[MessageType.RPC_DELIVERED, 'RPC Delivered'],
|
||||
[MessageType.RPC_SUCCESSFUL, 'RPC Successful'],
|
||||
[MessageType.RPC_TIMEOUT, 'RPC Timeout'],
|
||||
[MessageType.RPC_FAILED, 'RPC Failed']
|
||||
]
|
||||
);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user