Single entity deletion event when tenant is deleted
This commit is contained in:
parent
a80d4650ea
commit
c47946948a
@ -33,6 +33,7 @@ import org.thingsboard.server.common.data.alarm.AlarmComment;
|
||||
import org.thingsboard.server.common.data.audit.ActionType;
|
||||
import org.thingsboard.server.common.data.edge.EdgeEventActionType;
|
||||
import org.thingsboard.server.common.data.edge.EdgeEventType;
|
||||
import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.common.data.oauth2.OAuth2Info;
|
||||
import org.thingsboard.server.common.data.relation.EntityRelation;
|
||||
import org.thingsboard.server.common.data.relation.RelationTypeGroup;
|
||||
@ -44,6 +45,7 @@ import org.thingsboard.server.dao.eventsourcing.ActionEntityEvent;
|
||||
import org.thingsboard.server.dao.eventsourcing.DeleteEntityEvent;
|
||||
import org.thingsboard.server.dao.eventsourcing.RelationActionEvent;
|
||||
import org.thingsboard.server.dao.eventsourcing.SaveEntityEvent;
|
||||
import org.thingsboard.server.dao.tenant.TenantService;
|
||||
import org.thingsboard.server.dao.user.UserServiceImpl;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
@ -69,6 +71,7 @@ public class EdgeEventSourcingListener {
|
||||
|
||||
private final TbClusterService tbClusterService;
|
||||
private final EdgeSynchronizationManager edgeSynchronizationManager;
|
||||
private final TenantService tenantService;
|
||||
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
@ -95,19 +98,24 @@ public class EdgeEventSourcingListener {
|
||||
|
||||
@TransactionalEventListener(fallbackExecution = true)
|
||||
public void handleEvent(DeleteEntityEvent<?> event) {
|
||||
TenantId tenantId = event.getTenantId();
|
||||
EntityType entityType = event.getEntityId().getEntityType();
|
||||
if (!tenantService.tenantExists(tenantId)) {
|
||||
log.debug("[{}] Ignoring DeleteEntityEvent because tenant does not exist: {}", tenantId, event);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
if (EntityType.EDGE.equals(entityType) || EntityType.TENANT.equals(entityType)) {
|
||||
return;
|
||||
}
|
||||
log.trace("[{}] DeleteEntityEvent called: {}", event.getTenantId(), event);
|
||||
log.trace("[{}] DeleteEntityEvent called: {}", tenantId, event);
|
||||
EdgeEventType type = getEdgeEventTypeForEntityEvent(event.getEntity());
|
||||
EdgeEventActionType actionType = getEdgeEventActionTypeForEntityEvent(event.getEntity());
|
||||
tbClusterService.sendNotificationMsgToEdge(event.getTenantId(), null, event.getEntityId(),
|
||||
tbClusterService.sendNotificationMsgToEdge(tenantId, null, event.getEntityId(),
|
||||
JacksonUtil.toString(event.getEntity()), type, actionType,
|
||||
edgeSynchronizationManager.getEdgeId().get());
|
||||
} catch (Exception e) {
|
||||
log.error("[{}] failed to process DeleteEntityEvent: {}", event.getTenantId(), event, e);
|
||||
log.error("[{}] failed to process DeleteEntityEvent: {}", tenantId, event, e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -51,6 +51,7 @@ import org.thingsboard.server.common.msg.rule.engine.DeviceCredentialsUpdateNoti
|
||||
import org.thingsboard.server.dao.eventsourcing.ActionEntityEvent;
|
||||
import org.thingsboard.server.dao.eventsourcing.DeleteEntityEvent;
|
||||
import org.thingsboard.server.dao.eventsourcing.SaveEntityEvent;
|
||||
import org.thingsboard.server.dao.tenant.TenantService;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.Set;
|
||||
@ -61,6 +62,7 @@ import java.util.Set;
|
||||
public class EntityStateSourcingListener {
|
||||
|
||||
private final TbClusterService tbClusterService;
|
||||
private final TenantService tenantService;
|
||||
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
@ -121,6 +123,10 @@ public class EntityStateSourcingListener {
|
||||
TenantId tenantId = event.getTenantId();
|
||||
EntityId entityId = event.getEntityId();
|
||||
EntityType entityType = entityId.getEntityType();
|
||||
if (entityType != EntityType.TENANT && !tenantService.tenantExists(tenantId)) {
|
||||
log.debug("[{}] Ignoring DeleteEntityEvent because tenant does not exist: {}", tenantId, event);
|
||||
return;
|
||||
}
|
||||
log.debug("[{}][{}][{}] Handling entity deletion event: {}", tenantId, entityType, entityId, event);
|
||||
|
||||
switch (entityType) {
|
||||
|
||||
@ -231,7 +231,6 @@ public class EdgeServiceImpl extends AbstractCachedEntityService<EdgeCacheKey, E
|
||||
|
||||
eventPublisher.publishEvent(DeleteEntityEvent.builder().tenantId(tenantId).entityId(edgeId).build());
|
||||
publishEvictEvent(new EdgeCacheEvictEvent(edge.getTenantId(), edge.getName(), null));
|
||||
eventPublisher.publishEvent(DeleteEntityEvent.builder().tenantId(tenantId).entityId(edgeId).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user