Browse Source

Fix RuleChainMetadata for older Edge versions

- refactoring
pull/12843/head
yevhenii 2 years ago
parent
commit
65f5cd3093
  1. 5
      application/src/main/java/org/thingsboard/server/service/edge/EdgeMsgConstructorUtils.java
  2. 8
      application/src/test/java/org/thingsboard/server/service/edge/EdgeMsgConstructorUtilsTest.java

5
application/src/main/java/org/thingsboard/server/service/edge/EdgeMsgConstructorUtils.java

@ -144,7 +144,6 @@ public class EdgeMsgConstructorUtils {
) )
); );
//these nodes added in edge version 3.8.0
public static final Map<EdgeVersion, Set<String>> VERSION_TO_MISSING_NODES = Map.of( public static final Map<EdgeVersion, Set<String>> VERSION_TO_MISSING_NODES = Map.of(
EdgeVersion.V_3_7_0, EdgeVersion.V_3_7_0,
Set.of( Set.of(
@ -465,7 +464,7 @@ public class EdgeMsgConstructorUtils {
JsonNode nodes = jsonNode.get("nodes"); JsonNode nodes = jsonNode.get("nodes");
changeConfigForOldEdgeVersions(nodes, edgeVersion); changeConfigForOldEdgeVersions(nodes, edgeVersion);
removeMissingNodeOldForEdge(nodes, edgeVersion); removeMissingNodeForOldEdge(nodes, edgeVersion);
return JacksonUtil.toString(jsonNode); return JacksonUtil.toString(jsonNode);
} }
@ -483,7 +482,7 @@ public class EdgeMsgConstructorUtils {
}); });
} }
private static void removeMissingNodeOldForEdge(JsonNode nodes, EdgeVersion edgeVersion) { private static void removeMissingNodeForOldEdge(JsonNode nodes, EdgeVersion edgeVersion) {
Iterator<JsonNode> iterator = nodes.iterator(); Iterator<JsonNode> iterator = nodes.iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {

8
application/src/test/java/org/thingsboard/server/service/edge/EdgeMsgConstructorUtilsTest.java

@ -136,13 +136,13 @@ public class EdgeMsgConstructorUtilsTest {
ruleNodes.forEach(ruleNode -> { ruleNodes.forEach(ruleNode -> {
int configParamCount = NODE_TO_CONFIG_PARAMS_COUNT.get(ruleNode.getType()); int configParamCount = NODE_TO_CONFIG_PARAMS_COUNT.get(ruleNode.getType());
boolean isOldEdgeVersion = VERSION_TO_IGNORED_PARAM.keySet().stream() boolean isOldEdgeVersion = VERSION_TO_IGNORED_PARAM.entrySet().stream()
.anyMatch(version -> version.equals(edgeVersion)); .anyMatch(entry -> entry.getKey().equals(edgeVersion) &&
entry.getValue().containsKey(ruleNode.getType()));
int expectedConfigAmount = isOldEdgeVersion ? configParamCount - 1 : configParamCount; int expectedConfigAmount = isOldEdgeVersion ? configParamCount - 1 : configParamCount;
Assert.assertEquals( Assert.assertEquals(
String.format("Expected %d config params for ruleNode '%s', but found %d", String.format("For ruleNode '%s', edgeVersion '%s", ruleNode.getName(), edgeVersion),
expectedConfigAmount, ruleNode.getName(), ruleNode.getConfiguration().size()),
expectedConfigAmount, ruleNode.getConfiguration().size() expectedConfigAmount, ruleNode.getConfiguration().size()
); );
}); });

Loading…
Cancel
Save