summaryrefslogtreecommitdiffstats
path: root/controller-server/src
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2017-09-27 14:40:29 +0200
committerMartin Polden <mpolden@mpolden.no>2017-09-28 09:21:52 +0200
commit8e2a0c2edfe9a14f4e745e3584526b3c58e77844 (patch)
treebde6e9a16a6f9a5f81f16a275b38b64761e944e2 /controller-server/src
parentdf59841596f54ac9a7493edb61ab3166673af4c7 (diff)
Use DeploymentTester in tests that deploy
Diffstat (limited to 'controller-server/src')
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/PolledBuildSystemTest.java20
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java55
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());
}
}