aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2019-12-06 11:12:11 +0100
committerHarald Musum <musum@verizonmedia.com>2019-12-06 11:12:11 +0100
commiteb7273dff360f88c2f6bb9cd8b738850192065fe (patch)
tree876fc1d640560921c8fd8f621fc9e03b7d4d276c
parent9853a5e5473c662713806d679245c7679977eea5 (diff)
Only remove unused CNAMEs when removing obsolete policies
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/RoutingPolicies.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/RoutingPolicies.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/RoutingPolicies.java
index 59394b955b8..a82479fd0d8 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/RoutingPolicies.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/RoutingPolicies.java
@@ -153,10 +153,17 @@ public class RoutingPolicies {
LOGGER.log(LogLevel.WARNING, "Removing " + removalCandidates + ". Active load balancers " +
activeLoadBalancers);
}
+ removalCandidates.forEach(allPolicies::remove);
+
+ // Find CNAMEs in use
+ var cnamesUsed = allPolicies.stream()
+ .map(policy -> policy.endpointIn(controller.system()).dnsName())
+ .collect(Collectors.toSet());
+
for (var policy : removalCandidates) {
var dnsName = policy.endpointIn(controller.system()).dnsName();
- controller.nameServiceForwarder().removeRecords(Record.Type.CNAME, RecordName.from(dnsName), Priority.normal);
- allPolicies.remove(policy);
+ if ( ! cnamesUsed.contains(dnsName))
+ controller.nameServiceForwarder().removeRecords(Record.Type.CNAME, RecordName.from(dnsName), Priority.normal);
}
db.writeRoutingPolicies(loadBalancers.application, allPolicies);
}