summaryrefslogtreecommitdiffstats
path: root/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java')
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java45
1 files changed, 23 insertions, 22 deletions
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java
index bb1e6b6256a..3c23053eac0 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java
@@ -5,11 +5,12 @@ import com.yahoo.component.Version;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.zone.ZoneId;
-import com.yahoo.vespa.hosted.controller.Application;
-import com.yahoo.vespa.hosted.controller.Controller;
+import com.yahoo.vespa.hosted.controller.ControllerTester;
+import com.yahoo.vespa.hosted.controller.api.integration.deployment.JobType;
import com.yahoo.vespa.hosted.controller.application.ApplicationPackage;
import com.yahoo.vespa.hosted.controller.deployment.ApplicationPackageBuilder;
-import com.yahoo.vespa.hosted.controller.restapi.ContainerControllerTester;
+import com.yahoo.vespa.hosted.controller.deployment.DeploymentTester;
+import com.yahoo.vespa.hosted.controller.restapi.ContainerTester;
import com.yahoo.vespa.hosted.controller.restapi.ControllerContainerTest;
import com.yahoo.vespa.hosted.controller.versions.NodeVersion;
import com.yahoo.vespa.hosted.controller.versions.NodeVersions;
@@ -31,42 +32,42 @@ public class DeploymentApiTest extends ControllerContainerTest {
@Test
public void testDeploymentApi() {
- ContainerControllerTester tester = new ContainerControllerTester(container, responseFiles);
+ ContainerTester tester = new ContainerTester(container, responseFiles);
+ DeploymentTester deploymentTester = new DeploymentTester(new ControllerTester(tester));
Version version = Version.fromString("5.0");
- tester.containerTester().upgradeSystem(version);
+ deploymentTester.controllerTester().upgradeSystem(version);
ApplicationPackage applicationPackage = new ApplicationPackageBuilder()
.environment(Environment.prod)
.region("us-west-1")
.build();
// 3 applications deploy on current system version
- Application failingInstance = tester.createApplication("domain1", "tenant1", "application1", "default");
- Application productionInstance = tester.createApplication("domain2", "tenant2", "application2", "default");
- Application instanceWithoutDeployment = tester.createApplication("domain3", "tenant3", "application3", "default");
- tester.deployCompletely(failingInstance, applicationPackage, 1L, false);
- tester.deployCompletely(productionInstance, applicationPackage, 2L, false);
+ var failingApp = deploymentTester.newDeploymentContext("tenant1", "application1", "default");
+ var productionApp = deploymentTester.newDeploymentContext("tenant2", "application2", "default");
+ var appWithoutDeployments = deploymentTester.newDeploymentContext("tenant3", "application3", "default");
+ failingApp.submit(applicationPackage).deploy();
+ productionApp.submit(applicationPackage).deploy();
// Deploy once so that job information is stored, then remove the deployment
- tester.deployCompletely(instanceWithoutDeployment, applicationPackage, 3L, false);
- tester.controller().applications().deactivate(instanceWithoutDeployment.id().defaultInstance(), ZoneId.from("prod", "us-west-1"));
+ appWithoutDeployments.submit(applicationPackage).deploy();
+ deploymentTester.applications().deactivate(appWithoutDeployments.instanceId(), ZoneId.from("prod", "us-west-1"));
// New version released
version = Version.fromString("5.1");
- tester.containerTester().upgradeSystem(version);
+ deploymentTester.controllerTester().upgradeSystem(version);
// Applications upgrade, 1/2 succeed
- tester.upgrader().maintain();
- tester.controller().applications().deploymentTrigger().triggerReadyJobs();
- tester.controller().applications().deploymentTrigger().triggerReadyJobs();
- tester.deployCompletely(failingInstance, applicationPackage, 1L, true);
- tester.deployCompletely(productionInstance, applicationPackage, 2L, false);
+ deploymentTester.upgrader().maintain();
+ deploymentTester.triggerJobs();
+ productionApp.deployPlatform(version);
+ failingApp.runJob(JobType.systemTest).failDeployment(JobType.stagingTest);
+ deploymentTester.triggerJobs();
- tester.controller().updateVersionStatus(censorConfigServers(VersionStatus.compute(tester.controller()),
- tester.controller()));
+ tester.controller().updateVersionStatus(censorConfigServers(VersionStatus.compute(tester.controller())));
tester.assertResponse(authenticatedRequest("http://localhost:8080/deployment/v1/"), new File("root.json"));
}
- private VersionStatus censorConfigServers(VersionStatus versionStatus, Controller controller) {
+ private VersionStatus censorConfigServers(VersionStatus versionStatus) {
List<VespaVersion> censored = new ArrayList<>();
for (VespaVersion version : versionStatus.versions()) {
if (version.nodeVersions().size() > 0) {
@@ -78,7 +79,7 @@ public class DeploymentApiTest extends ControllerContainerTest {
version.isReleased(),
NodeVersions.EMPTY.with(List.of(new NodeVersion(HostName.from("config1.test"), ZoneId.defaultId(), version.versionNumber(), version.versionNumber(), Instant.EPOCH),
new NodeVersion(HostName.from("config2.test"), ZoneId.defaultId(), version.versionNumber(), version.versionNumber(), Instant.EPOCH))),
- VespaVersion.confidenceFrom(version.statistics(), controller)
+ version.confidence()
);
}
censored.add(version);