diff options
author | Håkon Hallingstad <hakon@yahooinc.com> | 2023-08-02 12:23:15 +0200 |
---|---|---|
committer | Håkon Hallingstad <hakon@yahooinc.com> | 2023-08-02 12:23:15 +0200 |
commit | 697a8647a79b9a8038217801cebb3b336d4a278a (patch) | |
tree | 952472490d02beb1098a17119269c53ab39495c6 /controller-api/src/main | |
parent | 0adede88d0aa7bbb7280a5c26a5279fc08246652 (diff) |
Treat null value on rule like comment
Diffstat (limited to 'controller-api/src/main')
-rw-r--r-- | controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/SystemFlagsDataArchive.java | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/SystemFlagsDataArchive.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/SystemFlagsDataArchive.java index f6ffd711f51..8ca4c37a85a 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/SystemFlagsDataArchive.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/SystemFlagsDataArchive.java @@ -236,6 +236,7 @@ public class SystemFlagsDataArchive { static String normalizeJson(String json, Set<ZoneId> zones) { JsonNode root = uncheck(() -> mapper.readTree(json)); removeCommentsRecursively(root); + removeNullRuleValues(root); verifyValues(root, zones); return root.toString(); } @@ -299,6 +300,22 @@ public class SystemFlagsDataArchive { node.forEach(SystemFlagsDataArchive::removeCommentsRecursively); } + private static void removeNullRuleValues(JsonNode root) { + if (root instanceof ObjectNode objectNode) { + JsonNode rules = objectNode.get("rules"); + if (rules != null) { + rules.forEach(ruleNode -> { + if (ruleNode instanceof ObjectNode rule) { + JsonNode value = rule.get("value"); + if (value != null && value.isNull()) { + rule.remove("value"); + } + } + }); + } + } + } + private static String toFilePath(FlagId flagId, String filename) { return "flags/" + flagId.toString() + "/" + filename; } |