Moved update of edge on device actor to tb cluster service
This commit is contained in:
parent
d256349c73
commit
8dc06e53a8
@ -875,9 +875,6 @@ public class DeviceController extends BaseController {
|
|||||||
|
|
||||||
Device savedDevice = checkNotNull(deviceService.assignDeviceToEdge(getCurrentUser().getTenantId(), deviceId, edgeId));
|
Device savedDevice = checkNotNull(deviceService.assignDeviceToEdge(getCurrentUser().getTenantId(), deviceId, edgeId));
|
||||||
|
|
||||||
tbClusterService.pushMsgToCore(new DeviceEdgeUpdateMsg(savedDevice.getTenantId(),
|
|
||||||
savedDevice.getId(), edgeId), null);
|
|
||||||
|
|
||||||
logEntityAction(deviceId, savedDevice,
|
logEntityAction(deviceId, savedDevice,
|
||||||
savedDevice.getCustomerId(),
|
savedDevice.getCustomerId(),
|
||||||
ActionType.ASSIGNED_TO_EDGE, null, strDeviceId, strEdgeId, edge.getName());
|
ActionType.ASSIGNED_TO_EDGE, null, strDeviceId, strEdgeId, edge.getName());
|
||||||
@ -918,9 +915,6 @@ public class DeviceController extends BaseController {
|
|||||||
|
|
||||||
Device savedDevice = checkNotNull(deviceService.unassignDeviceFromEdge(getCurrentUser().getTenantId(), deviceId, edgeId));
|
Device savedDevice = checkNotNull(deviceService.unassignDeviceFromEdge(getCurrentUser().getTenantId(), deviceId, edgeId));
|
||||||
|
|
||||||
tbClusterService.pushMsgToCore(new DeviceEdgeUpdateMsg(savedDevice.getTenantId(),
|
|
||||||
savedDevice.getId(), null), null);
|
|
||||||
|
|
||||||
logEntityAction(deviceId, device,
|
logEntityAction(deviceId, device,
|
||||||
device.getCustomerId(),
|
device.getCustomerId(),
|
||||||
ActionType.UNASSIGNED_FROM_EDGE, null, strDeviceId, strEdgeId, edge.getName());
|
ActionType.UNASSIGNED_FROM_EDGE, null, strDeviceId, strEdgeId, edge.getName());
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.thingsboard.rule.engine.api.msg.DeviceEdgeUpdateMsg;
|
||||||
import org.thingsboard.rule.engine.api.msg.DeviceNameOrTypeUpdateMsg;
|
import org.thingsboard.rule.engine.api.msg.DeviceNameOrTypeUpdateMsg;
|
||||||
import org.thingsboard.server.cluster.TbClusterService;
|
import org.thingsboard.server.cluster.TbClusterService;
|
||||||
import org.thingsboard.server.common.data.EdgeUtils;
|
import org.thingsboard.server.common.data.EdgeUtils;
|
||||||
@ -455,6 +456,21 @@ public class DefaultTbClusterService implements TbClusterService {
|
|||||||
TransportProtos.EdgeNotificationMsgProto msg = builder.build();
|
TransportProtos.EdgeNotificationMsgProto msg = builder.build();
|
||||||
log.trace("[{}] sending notification to edge service {}", tenantId.getId(), msg);
|
log.trace("[{}] sending notification to edge service {}", tenantId.getId(), msg);
|
||||||
pushMsgToCore(tenantId, entityId != null ? entityId : tenantId, TransportProtos.ToCoreMsg.newBuilder().setEdgeNotificationMsg(msg).build(), null);
|
pushMsgToCore(tenantId, entityId != null ? entityId : tenantId, TransportProtos.ToCoreMsg.newBuilder().setEdgeNotificationMsg(msg).build(), null);
|
||||||
|
|
||||||
|
if (entityId != null && EntityType.DEVICE.equals(entityId.getEntityType())) {
|
||||||
|
pushDeviceUpdateMessage(tenantId, edgeId, entityId, action);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void pushDeviceUpdateMessage(TenantId tenantId, EdgeId edgeId, EntityId entityId, EdgeEventActionType action) {
|
||||||
|
log.trace("{} Going to send edge update notification for device actor, device id {}, edge id {}", tenantId, entityId, edgeId);
|
||||||
|
switch (action) {
|
||||||
|
case ASSIGNED_TO_EDGE:
|
||||||
|
pushMsgToCore(new DeviceEdgeUpdateMsg(tenantId, new DeviceId(entityId.getId()), edgeId), null);
|
||||||
|
break;
|
||||||
|
case UNASSIGNED_FROM_EDGE:
|
||||||
|
pushMsgToCore(new DeviceEdgeUpdateMsg(tenantId, new DeviceId(entityId.getId()), null), null);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,6 +19,8 @@ import com.fasterxml.jackson.annotation.JsonCreator;
|
|||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import org.springframework.util.ConcurrentReferenceHashMap;
|
||||||
|
import org.springframework.util.ConcurrentReferenceHashMap.ReferenceType;
|
||||||
import org.thingsboard.server.common.data.EntityType;
|
import org.thingsboard.server.common.data.EntityType;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -27,6 +29,9 @@ public class EdgeId extends UUIDBased implements EntityId {
|
|||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@JsonIgnore
|
||||||
|
static final ConcurrentReferenceHashMap<UUID, EdgeId> edges = new ConcurrentReferenceHashMap<>(16, ReferenceType.SOFT);
|
||||||
|
|
||||||
@JsonCreator
|
@JsonCreator
|
||||||
public EdgeId(@JsonProperty("id") UUID id) {
|
public EdgeId(@JsonProperty("id") UUID id) {
|
||||||
super(id);
|
super(id);
|
||||||
@ -41,4 +46,9 @@ public class EdgeId extends UUIDBased implements EntityId {
|
|||||||
public EntityType getEntityType() {
|
public EntityType getEntityType() {
|
||||||
return EntityType.EDGE;
|
return EntityType.EDGE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@JsonCreator
|
||||||
|
public static EdgeId fromUUID(@JsonProperty("id") UUID id) {
|
||||||
|
return edges.computeIfAbsent(id, EdgeId::new);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user