diff options
author | Martin Polden <mpolden@mpolden.no> | 2017-09-27 14:40:29 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2017-09-28 09:21:52 +0200 |
commit | 8e2a0c2edfe9a14f4e745e3584526b3c58e77844 (patch) | |
tree | bde6e9a16a6f9a5f81f16a275b38b64761e944e2 /controller-server/src | |
parent | df59841596f54ac9a7493edb61ab3166673af4c7 (diff) |
Use DeploymentTester in tests that deploy
Diffstat (limited to 'controller-server/src')
2 files changed, 52 insertions, 23 deletions
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/PolledBuildSystemTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/PolledBuildSystemTest.java index 779af370ff4..c869bd90924 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/PolledBuildSystemTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/PolledBuildSystemTest.java @@ -2,12 +2,9 @@ package com.yahoo.vespa.hosted.controller.deployment; import com.yahoo.config.provision.ApplicationId; -import com.yahoo.config.provision.Environment; -import com.yahoo.vespa.curator.mock.MockCurator; -import com.yahoo.vespa.hosted.controller.ControllerTester; import com.yahoo.vespa.hosted.controller.api.integration.BuildService.BuildJob; +import com.yahoo.vespa.hosted.controller.application.ApplicationPackage; import com.yahoo.vespa.hosted.controller.application.DeploymentJobs.JobType; -import com.yahoo.vespa.hosted.controller.persistence.CuratorDb; import com.yahoo.vespa.hosted.controller.persistence.MockCuratorDb; import org.junit.Test; import org.junit.runner.RunWith; @@ -37,15 +34,16 @@ public class PolledBuildSystemTest { @Test public void throttle_capacity_constrained_jobs() { - ControllerTester tester = new ControllerTester(); + DeploymentTester tester = new DeploymentTester(); BuildSystem buildSystem = new PolledBuildSystem(tester.controller(), new MockCuratorDb()); - long fooProjectId = 1; - long barProjectId = 2; - ApplicationId foo = tester.createAndDeploy("tenant1", "domain1", "app1", - Environment.prod, fooProjectId).id(); - ApplicationId bar = tester.createAndDeploy("tenant2", "domain2", "app2", - Environment.prod, barProjectId).id(); + int fooProjectId = 1; + int barProjectId = 2; + ApplicationPackage applicationPackage = new ApplicationPackageBuilder() + .region("us-west-1") + .build(); + ApplicationId foo = tester.createAndDeploy("app1", fooProjectId, applicationPackage).id(); + ApplicationId bar = tester.createAndDeploy("app2", barProjectId, applicationPackage).id(); // Trigger jobs in capacity constrained environment buildSystem.addJob(foo, jobType, false); 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 ee4f3631b54..ef0b05f9bb2 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,53 @@ 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.zoneRegistry().setDeploymentTimeToLive(new Zone(Environment.dev, RegionName.from("us-east-1")), Duration.ofDays(14)); + tester.controllerTester().zoneRegistry().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()); } } |