diff options
author | Harald Musum <musum@verizonmedia.com> | 2019-12-06 11:12:11 +0100 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2019-12-06 11:12:11 +0100 |
commit | eb7273dff360f88c2f6bb9cd8b738850192065fe (patch) | |
tree | 876fc1d640560921c8fd8f621fc9e03b7d4d276c | |
parent | 9853a5e5473c662713806d679245c7679977eea5 (diff) |
Only remove unused CNAMEs when removing obsolete policies
-rw-r--r-- | controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/RoutingPolicies.java | 11 |
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); } |