diff options
author | Martin Polden <mpolden@mpolden.no> | 2017-09-04 11:19:30 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2017-09-22 09:29:11 +0200 |
commit | 5238ca484594f4c0cf20305149bf99b64c37a1fa (patch) | |
tree | 8cc00888506ccb6a465a0b33a57df922bb8c0425 /controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java | |
parent | b77d42c9a25531982d2d77af32561850cf56ab36 (diff) |
Remove self-triggering support
Diffstat (limited to 'controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java')
-rw-r--r-- | controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java | 52 |
1 files changed, 40 insertions, 12 deletions
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java index 4c53a6d37e4..5b758957571 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java @@ -1,16 +1,22 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.controller.maintenance; -import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.Zone; -import com.yahoo.vespa.hosted.controller.ControllerTester; +import com.yahoo.vespa.hosted.controller.Application; +import com.yahoo.vespa.hosted.controller.application.ApplicationPackage; +import com.yahoo.vespa.hosted.controller.application.Deployment; +import com.yahoo.vespa.hosted.controller.deployment.ApplicationPackageBuilder; +import com.yahoo.vespa.hosted.controller.deployment.DeploymentTester; import com.yahoo.vespa.hosted.controller.persistence.MockCuratorDb; +import org.junit.Before; import org.junit.Test; import java.io.IOException; import java.time.Duration; +import java.util.List; +import java.util.stream.Collectors; import static org.junit.Assert.assertEquals; @@ -19,28 +25,50 @@ import static org.junit.Assert.assertEquals; */ public class DeploymentExpirerTest { + private DeploymentTester tester; + + @Before + public void before() { + tester = new DeploymentTester(); + } + @Test public void testDeploymentExpiry() throws IOException, InterruptedException { - ControllerTester tester = new ControllerTester(); - tester.getZoneRegistryMock().setDeploymentTimeToLive(new Zone(Environment.dev, RegionName.from("us-east-1")), Duration.ofDays(14)); + tester.controllerTester().getZoneRegistryMock().setDeploymentTimeToLive(new Zone(Environment.dev, RegionName.from("us-east-1")), Duration.ofDays(14)); DeploymentExpirer expirer = new DeploymentExpirer(tester.controller(), Duration.ofDays(10), tester.clock(), new JobControl(new MockCuratorDb())); - ApplicationId devApp = tester.createAndDeploy("tenant1", "domain1", "app1", Environment.dev, 123).id(); - ApplicationId prodApp = tester.createAndDeploy("tenant2", "domain2", "app2", Environment.prod, 456).id(); + Application devApp = tester.createApplication("app1", "tenant1", 123L, 1L); + Application prodApp = tester.createApplication("app2", "tenant2", 456L, 2L); + + // Deploy dev + tester.controllerTester().deploy(devApp, tester.controllerTester().toZone(Environment.dev)); - assertEquals(1, tester.controller().applications().get(devApp).get().deployments().size()); - assertEquals(1, tester.controller().applications().get(prodApp).get().deployments().size()); + // Deploy prod + ApplicationPackage prodAppPackage = new ApplicationPackageBuilder() + .region("us-west-1") + .build(); + tester.deployCompletely(prodApp, prodAppPackage); + + assertEquals(1, permanentDeployments(devApp).size()); + assertEquals(1, permanentDeployments(prodApp).size()); // Not expired at first expirer.maintain(); - assertEquals(1, tester.controller().applications().get(devApp).get().deployments().size()); - assertEquals(1, tester.controller().applications().get(prodApp).get().deployments().size()); + assertEquals(1, permanentDeployments(devApp).size()); + assertEquals(1, permanentDeployments(prodApp).size()); // The dev application is removed tester.clock().advance(Duration.ofDays(15)); expirer.maintain(); - assertEquals(0, tester.controller().applications().get(devApp).get().deployments().size()); - assertEquals(1, tester.controller().applications().get(prodApp).get().deployments().size()); + assertEquals(0, permanentDeployments(devApp).size()); + assertEquals(1, permanentDeployments(prodApp).size()); + } + + private List<Deployment> permanentDeployments(Application application) { + return tester.controller().applications().get(application.id()).get().deployments().values().stream() + .filter(deployment -> deployment.zone().environment() != Environment.test && + deployment.zone().environment() != Environment.staging) + .collect(Collectors.toList()); } } |