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