From 7644aa434200059da9b5830b13a8a600900bea4a Mon Sep 17 00:00:00 2001 From: Volodymyr Babak Date: Fri, 25 Sep 2020 17:29:33 +0300 Subject: [PATCH] Added edge update config handler --- .../server/service/edge/rpc/EdgeGrpcSession.java | 14 +++++++------- .../org/thingsboard/edge/rpc/EdgeGrpcClient.java | 3 +++ common/edge-api/src/main/proto/edge.proto | 5 +++++ 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java index 3fb42a40b6..de68eb6e55 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java @@ -83,6 +83,7 @@ import org.thingsboard.server.gen.edge.DeviceUpdateMsg; import org.thingsboard.server.gen.edge.DownlinkMsg; import org.thingsboard.server.gen.edge.DownlinkResponseMsg; import org.thingsboard.server.gen.edge.EdgeConfiguration; +import org.thingsboard.server.gen.edge.EdgeUpdateMsg; import org.thingsboard.server.gen.edge.EntityDataProto; import org.thingsboard.server.gen.edge.EntityViewUpdateMsg; import org.thingsboard.server.gen.edge.RelationRequestMsg; @@ -244,12 +245,11 @@ public final class EdgeGrpcSession implements Closeable { void onConfigurationUpdate(Edge edge) { try { this.edge = edge; - // TODO: voba - push edge configuration update to edge -// sendResponseMsg(org.thingsboard.server.gen.integration.ResponseMsg.newBuilder() -// .setIntegrationUpdateMsg(IntegrationUpdateMsg.newBuilder() -// .setConfiguration(constructIntegrationConfigProto(configuration, defaultConverterProto, downLinkConverterProto)) -// .build()) -// .build()); + EdgeUpdateMsg edgeConfig = EdgeUpdateMsg.newBuilder() + .setConfiguration(constructEdgeConfigProto(edge)).build(); + outputStream.onNext(ResponseMsg.newBuilder() + .setEdgeUpdateMsg(edgeConfig) + .build()); } catch (Exception e) { log.error("Failed to construct proto objects!", e); } @@ -903,7 +903,7 @@ public final class EdgeGrpcSession implements Closeable { } } if (uplinkMsg.getDeviceRpcCallMsgList() != null && !uplinkMsg.getDeviceRpcCallMsgList().isEmpty()) { - for (DeviceRpcCallMsg deviceRpcCallMsg: uplinkMsg.getDeviceRpcCallMsgList()) { + for (DeviceRpcCallMsg deviceRpcCallMsg : uplinkMsg.getDeviceRpcCallMsgList()) { result.add(ctx.getDeviceProcessor().processDeviceRpcCallResponseMsg(edge.getTenantId(), deviceRpcCallMsg)); } } diff --git a/common/edge-api/src/main/java/org/thingsboard/edge/rpc/EdgeGrpcClient.java b/common/edge-api/src/main/java/org/thingsboard/edge/rpc/EdgeGrpcClient.java index 88fe402668..edc1e5bc91 100644 --- a/common/edge-api/src/main/java/org/thingsboard/edge/rpc/EdgeGrpcClient.java +++ b/common/edge-api/src/main/java/org/thingsboard/edge/rpc/EdgeGrpcClient.java @@ -114,6 +114,9 @@ public class EdgeGrpcClient implements EdgeRpcClient { } onError.accept(new EdgeConnectionException("Failed to establish the connection! Response code: " + connectResponseMsg.getResponseCode().name())); } + } else if (responseMsg.hasEdgeUpdateMsg()) { + log.debug("[{}] Edge update message received {}", edgeKey, responseMsg.getEdgeUpdateMsg()); + onEdgeUpdate.accept(responseMsg.getEdgeUpdateMsg().getConfiguration()); } else if (responseMsg.hasUplinkResponseMsg()) { log.debug("[{}] Uplink response message received {}", edgeKey, responseMsg.getUplinkResponseMsg()); onUplinkResponse.accept(responseMsg.getUplinkResponseMsg()); diff --git a/common/edge-api/src/main/proto/edge.proto b/common/edge-api/src/main/proto/edge.proto index 30279ed10d..c2ce170401 100644 --- a/common/edge-api/src/main/proto/edge.proto +++ b/common/edge-api/src/main/proto/edge.proto @@ -44,6 +44,7 @@ message ResponseMsg { ConnectResponseMsg connectResponseMsg = 1; UplinkResponseMsg uplinkResponseMsg = 2; DownlinkMsg downlinkMsg = 3; + EdgeUpdateMsg edgeUpdateMsg = 4; } enum RequestMsgType { @@ -52,6 +53,10 @@ enum RequestMsgType { SYNC_REQUEST_RPC_MESSAGE = 2; } +message EdgeUpdateMsg { + EdgeConfiguration configuration = 1; +} + message ConnectRequestMsg { string edgeRoutingKey = 1; string edgeSecret = 2;