Add EntityType reference to EdgeEventType to match types for edge

This commit is contained in:
Andrii Landiak 2023-08-11 12:56:32 +03:00
parent 9cae7c918b
commit d56f6484b1
7 changed files with 66 additions and 71 deletions

View File

@ -73,7 +73,7 @@ public class AlarmEdgeProcessor extends BaseAlarmProcessor {
if (alarm == null) {
return Futures.immediateFuture(null);
}
EdgeEventType type = EdgeUtils.getEdgeEventTypeByEntityType(alarm.getOriginator().getEntityType());
EdgeEventType type = EdgeEventType.getEdgeEventTypeByEntityType(alarm.getOriginator().getEntityType());
if (type == null) {
return Futures.immediateFuture(null);
}

View File

@ -130,7 +130,7 @@ public class DefaultEdgeRequestsService implements EdgeRequestsService {
EntityId entityId = EntityIdFactory.getByTypeAndUuid(
EntityType.valueOf(attributesRequestMsg.getEntityType()),
new UUID(attributesRequestMsg.getEntityIdMSB(), attributesRequestMsg.getEntityIdLSB()));
final EdgeEventType entityType = EdgeUtils.getEdgeEventTypeByEntityType(entityId.getEntityType());
final EdgeEventType entityType = EdgeEventType.getEdgeEventTypeByEntityType(entityId.getEntityType());
if (entityType == null) {
log.warn("[{}] Type doesn't supported {}", tenantId, entityId.getEntityType());
return Futures.immediateFuture(null);

View File

@ -29,7 +29,6 @@ import org.thingsboard.server.cluster.TbClusterService;
import org.thingsboard.server.common.data.ApiUsageState;
import org.thingsboard.server.common.data.Device;
import org.thingsboard.server.common.data.DeviceProfile;
import org.thingsboard.server.common.data.EdgeUtils;
import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.HasRuleEngineProfile;
@ -481,7 +480,7 @@ public class DefaultTbClusterService implements TbClusterService {
}
if (type == null) {
if (entityId != null) {
type = EdgeUtils.getEdgeEventTypeByEntityType(entityId.getEntityType());
type = EdgeEventType.getEdgeEventTypeByEntityType(entityId.getEntityType());
} else {
log.trace("[{}] entity id and type are null. Ignoring this notification", tenantId);
return;

View File

@ -32,16 +32,7 @@ public final class EdgeUtils {
private static final int STACK_TRACE_LIMIT = 10;
private EdgeUtils() {
}
public static EdgeEventType getEdgeEventTypeByEntityType(EntityType entityType) {
EdgeEventType edgeEventType = entityType.getEdgeEventType();
if (edgeEventType == null) {
log.warn("Unsupported entity type [{}]", entityType);
}
return edgeEventType;
}
private EdgeUtils() {}
public static int nextPositiveInt() {
return ThreadLocalRandom.current().nextInt(0, Integer.MAX_VALUE);

View File

@ -17,7 +17,6 @@ package org.thingsboard.server.common.data;
import lombok.Getter;
import org.apache.commons.lang3.StringUtils;
import org.thingsboard.server.common.data.edge.EdgeEventType;
import java.util.EnumSet;
import java.util.List;
@ -27,38 +26,38 @@ import java.util.stream.Collectors;
* @author Andrew Shvayka
*/
public enum EntityType {
TENANT(EdgeEventType.TENANT),
CUSTOMER(EdgeEventType.CUSTOMER),
USER(EdgeEventType.USER),
DASHBOARD(EdgeEventType.DASHBOARD),
ASSET(EdgeEventType.ASSET),
DEVICE(EdgeEventType.DEVICE),
ALARM(EdgeEventType.ALARM),
RULE_CHAIN(EdgeEventType.RULE_CHAIN),
RULE_NODE(null),
ENTITY_VIEW(EdgeEventType.ENTITY_VIEW) {
TENANT,
CUSTOMER,
USER,
DASHBOARD,
ASSET,
DEVICE,
ALARM,
RULE_CHAIN,
RULE_NODE,
ENTITY_VIEW {
// backward compatibility for TbOriginatorTypeSwitchNode to return correct rule node connection.
@Override
public String getNormalName() {
return "Entity View";
}
},
WIDGETS_BUNDLE(EdgeEventType.WIDGETS_BUNDLE),
WIDGET_TYPE(EdgeEventType.WIDGET_TYPE),
TENANT_PROFILE(EdgeEventType.TENANT_PROFILE),
DEVICE_PROFILE(EdgeEventType.DEVICE_PROFILE),
ASSET_PROFILE(EdgeEventType.ASSET_PROFILE),
API_USAGE_STATE(null),
TB_RESOURCE(null),
OTA_PACKAGE(EdgeEventType.OTA_PACKAGE),
EDGE(EdgeEventType.EDGE),
RPC(null),
QUEUE(EdgeEventType.QUEUE),
NOTIFICATION_TARGET(null),
NOTIFICATION_TEMPLATE(null),
NOTIFICATION_REQUEST(null),
NOTIFICATION(null),
NOTIFICATION_RULE(null);
WIDGETS_BUNDLE,
WIDGET_TYPE,
TENANT_PROFILE,
DEVICE_PROFILE,
ASSET_PROFILE,
API_USAGE_STATE,
TB_RESOURCE,
OTA_PACKAGE,
EDGE,
RPC,
QUEUE,
NOTIFICATION_TARGET,
NOTIFICATION_TEMPLATE,
NOTIFICATION_REQUEST,
NOTIFICATION,
NOTIFICATION_RULE;
public static final List<String> NORMAL_NAMES = EnumSet.allOf(EntityType.class).stream()
.map(EntityType::getNormalName).collect(Collectors.toUnmodifiableList());
@ -67,11 +66,4 @@ public enum EntityType {
private final String normalName = StringUtils.capitalize(StringUtils.removeStart(name(), "TB_")
.toLowerCase().replaceAll("_", " "));
@Getter
private final EdgeEventType edgeEventType;
EntityType(EdgeEventType edgeEventType) {
this.edgeEventType = edgeEventType;
}
}

View File

@ -16,33 +16,47 @@
package org.thingsboard.server.common.data.edge;
import lombok.Getter;
import org.thingsboard.server.common.data.EntityType;
import java.util.Arrays;
@Getter
public enum EdgeEventType {
DASHBOARD(false),
ASSET(false),
DEVICE(false),
DEVICE_PROFILE(true),
ASSET_PROFILE(true),
ENTITY_VIEW(false),
ALARM(false),
RULE_CHAIN(false),
RULE_CHAIN_METADATA(false),
EDGE(false),
USER(true),
CUSTOMER(true),
RELATION(true),
TENANT(true),
TENANT_PROFILE(true),
WIDGETS_BUNDLE(true),
WIDGET_TYPE(true),
ADMIN_SETTINGS(true),
OTA_PACKAGE(true),
QUEUE(true);
DASHBOARD(false, EntityType.DASHBOARD),
ASSET(false, EntityType.ASSET),
DEVICE(false, EntityType.DEVICE),
DEVICE_PROFILE(true, EntityType.DEVICE_PROFILE),
ASSET_PROFILE(true, EntityType.ASSET_PROFILE),
ENTITY_VIEW(false, EntityType.ENTITY_VIEW),
ALARM(false, EntityType.ALARM),
RULE_CHAIN(false, EntityType.RULE_CHAIN),
RULE_CHAIN_METADATA(false, null),
EDGE(false, EntityType.EDGE),
USER(true, EntityType.USER),
CUSTOMER(true, EntityType.CUSTOMER),
RELATION(true, null),
TENANT(true, EntityType.TENANT),
TENANT_PROFILE(true, EntityType.TENANT_PROFILE),
WIDGETS_BUNDLE(true, EntityType.WIDGETS_BUNDLE),
WIDGET_TYPE(true, EntityType.WIDGET_TYPE),
ADMIN_SETTINGS(true, null),
OTA_PACKAGE(true, EntityType.OTA_PACKAGE),
QUEUE(true, EntityType.QUEUE);
private final boolean allEdgesRelated;
EdgeEventType(boolean allEdgesRelated) {
private final EntityType entityType;
EdgeEventType(boolean allEdgesRelated, EntityType entityType) {
this.allEdgesRelated = allEdgesRelated;
this.entityType = entityType;
}
public static EdgeEventType getEdgeEventTypeByEntityType(EntityType entityType) {
return Arrays.stream(values())
.filter(edgeEventType -> entityType.equals(edgeEventType.getEntityType()))
.findFirst()
.orElse(null);
}
}

View File

@ -24,7 +24,6 @@ import org.checkerframework.checker.nullness.qual.Nullable;
import org.thingsboard.rule.engine.api.RuleNode;
import org.thingsboard.rule.engine.api.TbContext;
import org.thingsboard.server.common.data.DataConstants;
import org.thingsboard.server.common.data.EdgeUtils;
import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.edge.EdgeEvent;
import org.thingsboard.server.common.data.edge.EdgeEventActionType;
@ -91,7 +90,7 @@ public class TbMsgPushToEdgeNode extends AbstractTbMsgPushNode<TbMsgPushToEdgeNo
@Override
EdgeEventType getEventTypeByEntityType(EntityType entityType) {
return EdgeUtils.getEdgeEventTypeByEntityType(entityType);
return EdgeEventType.getEdgeEventTypeByEntityType(entityType);
}
@Override