aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server/src/test/java/com/yahoo/vespa/hosted
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2023-09-14 14:04:15 +0200
committerMartin Polden <mpolden@mpolden.no>2023-09-14 14:16:38 +0200
commitd77f17f400da76e3fb3fb9ecf7ca8d5880da7fb0 (patch)
tree50824e4e6bd374b7269bc1131ba0d61f7885e018 /controller-server/src/test/java/com/yahoo/vespa/hosted
parent32ef41e327d51954843fb3f5e07c01b87576e350 (diff)
Ensure deactivate removes all generated records
Diffstat (limited to 'controller-server/src/test/java/com/yahoo/vespa/hosted')
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentContext.java12
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/RoutingPoliciesTest.java31
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) {