diff options
author | Martin Polden <mpolden@mpolden.no> | 2023-09-14 14:04:15 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2023-09-14 14:16:38 +0200 |
commit | d77f17f400da76e3fb3fb9ecf7ca8d5880da7fb0 (patch) | |
tree | 50824e4e6bd374b7269bc1131ba0d61f7885e018 /controller-server/src/test/java/com/yahoo/vespa/hosted | |
parent | 32ef41e327d51954843fb3f5e07c01b87576e350 (diff) |
Ensure deactivate removes all generated records
Diffstat (limited to 'controller-server/src/test/java/com/yahoo/vespa/hosted')
2 files changed, 33 insertions, 10 deletions
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentContext.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentContext.java index 967a821c506..9f6cacb557b 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentContext.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentContext.java @@ -6,9 +6,7 @@ import com.yahoo.component.Version; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.AthenzDomain; import com.yahoo.config.provision.AthenzService; -import com.yahoo.config.provision.ClusterSpec.Id; import com.yahoo.config.provision.Environment; -import com.yahoo.config.provision.HostName; import com.yahoo.config.provision.zone.ZoneId; import com.yahoo.security.KeyAlgorithm; import com.yahoo.security.KeyUtils; @@ -29,16 +27,12 @@ import com.yahoo.vespa.hosted.controller.api.integration.deployment.SourceRevisi import com.yahoo.vespa.hosted.controller.api.integration.deployment.TesterCloud.Status; import com.yahoo.vespa.hosted.controller.api.integration.deployment.TesterId; import com.yahoo.vespa.hosted.controller.application.Deployment; -import com.yahoo.vespa.hosted.controller.application.EndpointId; import com.yahoo.vespa.hosted.controller.application.TenantAndApplicationId; import com.yahoo.vespa.hosted.controller.application.pkg.ApplicationPackage; import com.yahoo.vespa.hosted.controller.deployment.InternalStepRunner.Timeouts; import com.yahoo.vespa.hosted.controller.integration.ConfigServerMock; import com.yahoo.vespa.hosted.controller.maintenance.JobRunner; import com.yahoo.vespa.hosted.controller.maintenance.NameServiceDispatcher; -import com.yahoo.vespa.hosted.controller.routing.RoutingPolicy; -import com.yahoo.vespa.hosted.controller.routing.RoutingPolicyId; -import com.yahoo.vespa.hosted.controller.routing.RoutingStatus; import javax.security.auth.x500.X500Principal; import java.math.BigInteger; @@ -47,7 +41,6 @@ import java.security.cert.X509Certificate; import java.time.Duration; import java.time.Instant; import java.util.HashMap; -import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -262,9 +255,8 @@ public class DeploymentContext { try { dispatcher.run(); return this; - } - finally { - dispatcher.shutdown(); + } finally { + dispatcher.awaitShutdown(); } } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/RoutingPoliciesTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/RoutingPoliciesTest.java index 45ee1cca4cc..7147c7ea709 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/RoutingPoliciesTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/RoutingPoliciesTest.java @@ -1083,6 +1083,37 @@ public class RoutingPoliciesTest { context.submit(applicationPackage).deferLoadBalancerProvisioningIn(Environment.prod).deploy(); assertEquals(expectedRecords, tester.recordNames()); assertEquals(containerEndpointsInProd, tester.containerEndpoints(Environment.prod)); + + // One endpoint is removed + applicationPackage = applicationPackageBuilder().region(zone1.region()) + .region(zone2.region()) + .container("c0", AuthMethod.mtls) + .container("c1", AuthMethod.mtls, AuthMethod.token) + .applicationEndpoint("bar", "c0", Map.of(zone1.region().value(), Map.of(InstanceName.defaultName(), 1))) + .allow(ValidationId.globalEndpointChange) + .build(); + context.submit(applicationPackage).deferLoadBalancerProvisioningIn(Environment.prod).deploy(); + assertEquals(List.of( + "b36bf591.cafed00d.z.vespa-app.cloud", + "bar.app1.tenant1.a.vespa-app.cloud", + "bc50b636.cafed00d.z.vespa-app.cloud", + "c0.app1.tenant1.aws-eu-west-1a.z.vespa-app.cloud", + "c0.app1.tenant1.aws-us-east-1c.z.vespa-app.cloud", + "c1.app1.tenant1.aws-eu-west-1a.z.vespa-app.cloud", + "c1.app1.tenant1.aws-us-east-1c.z.vespa-app.cloud", + "c33db5ed.cafed00d.z.vespa-app.cloud", + "d71005bf.cafed00d.z.vespa-app.cloud", + "dd0971b4.cafed00d.z.vespa-app.cloud", + "eb48ad53.cafed00d.z.vespa-app.cloud", + "f4a4d111.cafed00d.a.vespa-app.cloud" + ), tester.recordNames()); + + // Removing application removes all records + context.submit(ApplicationPackageBuilder.fromDeploymentXml("<deployment version='1.0'/>", + ValidationId.deploymentRemoval, + ValidationId.globalEndpointChange)); + context.flushDnsUpdates(); + assertEquals(List.of(), tester.recordNames()); } private void addCertificateToPool(String id, UnassignedCertificate.State state, RoutingPoliciesTester tester) { |