fixed upgrade
This commit is contained in:
		
							parent
							
								
									82c642c97f
								
							
						
					
					
						commit
						4d2ac77c4a
					
				@ -52,7 +52,7 @@ import java.util.stream.Collectors;
 | 
			
		||||
@RuleNode(type = ComponentType.ENRICHMENT,
 | 
			
		||||
        name = "originator telemetry",
 | 
			
		||||
        configClazz = TbGetTelemetryNodeConfiguration.class,
 | 
			
		||||
        version = 1,
 | 
			
		||||
        version = 2,
 | 
			
		||||
        nodeDescription = "Adds message originator telemetry for selected time range into message metadata",
 | 
			
		||||
        nodeDetails = "Useful when you need to get telemetry data set from the message originator for a specific time range " +
 | 
			
		||||
                "instead of fetching just the latest telemetry or if you need to get the closest telemetry to the fetch interval start or end. " +
 | 
			
		||||
@ -232,21 +232,21 @@ public class TbGetTelemetryNode implements TbNode {
 | 
			
		||||
    public TbPair<Boolean, JsonNode> upgrade(int fromVersion, JsonNode oldConfiguration) throws TbNodeException {
 | 
			
		||||
        boolean hasChanges = false;
 | 
			
		||||
        switch (fromVersion) {
 | 
			
		||||
            case 0 -> {
 | 
			
		||||
            case 0: {
 | 
			
		||||
                if (oldConfiguration.hasNonNull("fetchMode")) {
 | 
			
		||||
                    String fetchMode = oldConfiguration.get("fetchMode").asText();
 | 
			
		||||
                    switch (fetchMode) {
 | 
			
		||||
                        case "FIRST":
 | 
			
		||||
                        case "FIRST" -> {
 | 
			
		||||
                            ((ObjectNode) oldConfiguration).put("orderBy", Direction.ASC.name());
 | 
			
		||||
                            ((ObjectNode) oldConfiguration).put("aggregation", Aggregation.NONE.name());
 | 
			
		||||
                            hasChanges = true;
 | 
			
		||||
                            break;
 | 
			
		||||
                        case "LAST":
 | 
			
		||||
                        }
 | 
			
		||||
                        case "LAST" -> {
 | 
			
		||||
                            ((ObjectNode) oldConfiguration).put("orderBy", Direction.DESC.name());
 | 
			
		||||
                            ((ObjectNode) oldConfiguration).put("aggregation", Aggregation.NONE.name());
 | 
			
		||||
                            hasChanges = true;
 | 
			
		||||
                            break;
 | 
			
		||||
                        case "ALL":
 | 
			
		||||
                        }
 | 
			
		||||
                        case "ALL" -> {
 | 
			
		||||
                            if (oldConfiguration.has("orderBy") &&
 | 
			
		||||
                                    (oldConfiguration.get("orderBy").isNull() || oldConfiguration.get("orderBy").asText().isEmpty())) {
 | 
			
		||||
                                ((ObjectNode) oldConfiguration).put("orderBy", Direction.ASC.name());
 | 
			
		||||
@ -257,16 +257,33 @@ public class TbGetTelemetryNode implements TbNode {
 | 
			
		||||
                                ((ObjectNode) oldConfiguration).put("aggregation", Aggregation.NONE.name());
 | 
			
		||||
                                hasChanges = true;
 | 
			
		||||
                            }
 | 
			
		||||
                            break;
 | 
			
		||||
                        default:
 | 
			
		||||
                        }
 | 
			
		||||
                        default -> {
 | 
			
		||||
                            ((ObjectNode) oldConfiguration).put("fetchMode", FetchMode.LAST.name());
 | 
			
		||||
                            ((ObjectNode) oldConfiguration).put("orderBy", Direction.DESC.name());
 | 
			
		||||
                            ((ObjectNode) oldConfiguration).put("aggregation", Aggregation.NONE.name());
 | 
			
		||||
                            hasChanges = true;
 | 
			
		||||
                            break;
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            case 1: {
 | 
			
		||||
                if (!oldConfiguration.hasNonNull("limit")) {
 | 
			
		||||
                    ((ObjectNode) oldConfiguration).put("limit", 1000);
 | 
			
		||||
                    hasChanges = true;
 | 
			
		||||
                }
 | 
			
		||||
                if (oldConfiguration.has("fetchMode") && oldConfiguration.get("fetchMode").asText().equals("ALL")) {
 | 
			
		||||
                    if (!oldConfiguration.hasNonNull("aggregation")) {
 | 
			
		||||
                        ((ObjectNode) oldConfiguration).put("aggregation", Aggregation.NONE.name());
 | 
			
		||||
                        hasChanges = true;
 | 
			
		||||
                    }
 | 
			
		||||
                    if (!oldConfiguration.hasNonNull("orderBy")) {
 | 
			
		||||
                        ((ObjectNode) oldConfiguration).put("orderBy", Direction.ASC.name());
 | 
			
		||||
                        hasChanges = true;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return new TbPair<>(hasChanges, oldConfiguration);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -637,6 +637,38 @@ public class TbGetTelemetryNodeTest extends AbstractRuleNodeUpgradeTest {
 | 
			
		||||
                                                  "endInterval": 1,
 | 
			
		||||
                                                  "endIntervalTimeUnit": "MINUTES"
 | 
			
		||||
                                        }
 | 
			
		||||
                                """),
 | 
			
		||||
                // config for version 0 (fetchMode is 'ALL' and limit, aggregation and orderBy do not exist)
 | 
			
		||||
                Arguments.of(0,
 | 
			
		||||
                        """
 | 
			
		||||
                                        {
 | 
			
		||||
                                                   "latestTsKeyNames": ["key"],
 | 
			
		||||
                                                   "fetchMode": "ALL",
 | 
			
		||||
                                                   "useMetadataIntervalPatterns": false,
 | 
			
		||||
                                                   "startIntervalPattern": "",
 | 
			
		||||
                                                   "endIntervalPattern": "",
 | 
			
		||||
                                                   "startInterval": 2,
 | 
			
		||||
                                                   "startIntervalTimeUnit": "MINUTES",
 | 
			
		||||
                                                   "endInterval": 1,
 | 
			
		||||
                                                   "endIntervalTimeUnit": "MINUTES"
 | 
			
		||||
                                        }
 | 
			
		||||
                                """,
 | 
			
		||||
                        true,
 | 
			
		||||
                        """
 | 
			
		||||
                                        {
 | 
			
		||||
                                                   "latestTsKeyNames": ["key"],
 | 
			
		||||
                                                   "aggregation": "NONE",
 | 
			
		||||
                                                   "fetchMode": "ALL",
 | 
			
		||||
                                                   "orderBy": "ASC",
 | 
			
		||||
                                                   "limit": 1000,
 | 
			
		||||
                                                   "useMetadataIntervalPatterns": false,
 | 
			
		||||
                                                   "startIntervalPattern": "",
 | 
			
		||||
                                                   "endIntervalPattern": "",
 | 
			
		||||
                                                   "startInterval": 2,
 | 
			
		||||
                                                   "startIntervalTimeUnit": "MINUTES",
 | 
			
		||||
                                                   "endInterval": 1,
 | 
			
		||||
                                                   "endIntervalTimeUnit": "MINUTES"
 | 
			
		||||
                                        }
 | 
			
		||||
                                """)
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user