diff options
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.java | 45 |
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); |