diff options
author | Martin Polden <mpolden@mpolden.no> | 2018-04-26 14:28:18 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2018-04-26 14:52:19 +0200 |
commit | ffe98fb6393899242d1e3facc3e35a0cbcd5fb7e (patch) | |
tree | 26810435a91c5e5f196f715aceb2cf9e38296a68 /controller-server/src/test | |
parent | 9a8cadbc2a131bd406e5c7fe8794e3e55b9390eb (diff) |
Refactor system upgrade test helpers
Diffstat (limited to 'controller-server/src/test')
13 files changed, 105 insertions, 125 deletions
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java index 4daeee37bf9..2042138d49b 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java @@ -560,8 +560,7 @@ public class ControllerTest { // Current system version, matches version in test data Version version = Version.fromString("6.141.117"); - tester.configServer().setDefaultVersion(version); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(version, tester.controller().versionStatus().systemVersion().get().versionNumber()); // Load test data data @@ -586,11 +585,8 @@ public class ControllerTest { // New version is released version = Version.fromString("6.142.1"); - tester.configServer().setDefaultVersion(version); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(version, tester.controller().versionStatus().systemVersion().get().versionNumber()); - tester.upgrader().maintain(); - tester.readyJobTrigger().maintain(); // Test environment passes tester.deployAndNotify(application, applicationPackage, true, systemTest); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTester.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTester.java index 70c53ecc734..8e671e4ebaf 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTester.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTester.java @@ -96,23 +96,21 @@ public class DeploymentTester { return controller().applications().require(application); } - public void updateVersionStatus() { - updateVersionStatus(tester.controller().systemVersion()); - } - - public void updateVersionStatus(Version newVersion) { - upgradeController(newVersion); - configServer().setDefaultVersion(newVersion); + public void computeVersionStatus() { controller().updateVersionStatus(VersionStatus.compute(controller())); } + /** Upgrade controller to given version */ public void upgradeController(Version newVersion) { controller().curator().writeControllerVersion(controller().hostname(), newVersion); controller().updateVersionStatus(VersionStatus.compute(controller())); } + /** Upgrade entire system to given version */ public void upgradeSystem(Version version) { - updateVersionStatus(version); + upgradeController(version); + configServer().setDefaultVersion(version); + computeVersionStatus(); upgrader().maintain(); readyJobTrigger().maintain(); } @@ -160,12 +158,6 @@ public class DeploymentTester { return createAndDeploy(tenant, applicationName, projectId, applicationPackage(upgradePolicy)); } - /** Complete an ongoing deployment */ - public void deployCompletely(String applicationName) { - deployCompletely(applications().require(ApplicationId.from("tenant1", applicationName, "default")), - applicationPackage("default")); - } - /** Deploy application completely using the given application package */ public void deployCompletely(Application application, ApplicationPackage applicationPackage) { deployCompletely(application, applicationPackage, BuildJob.defaultBuildNumber); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTriggerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTriggerTest.java index f27cb0ba171..31fa78d4b5f 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTriggerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTriggerTest.java @@ -58,8 +58,7 @@ public class DeploymentTriggerTest { .build(); Version version = new Version(5, 1); - tester.updateVersionStatus(version); - tester.upgrader().maintain(); + tester.upgradeSystem(version); // Deploy completely once tester.jobCompletion(component).application(app).uploadArtifact(applicationPackage).submit(); @@ -69,9 +68,7 @@ public class DeploymentTriggerTest { // New version is released version = new Version(5, 2); - tester.updateVersionStatus(version); - tester.upgrader().maintain(); - tester.readyJobTrigger().maintain(); + tester.upgradeSystem(version); // staging-test times out and is retried tester.buildService().remove(buildJob(app, stagingTest)); @@ -292,7 +289,7 @@ public class DeploymentTriggerTest { new JobControl(tester.controllerTester().curator())); Version version = Version.fromString("5.0"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); ApplicationPackageBuilder applicationPackageBuilder = new ApplicationPackageBuilder() .upgradePolicy("canary") diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentIssueReporterTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentIssueReporterTest.java index 3f166f67a16..2abd01927a1 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentIssueReporterTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentIssueReporterTest.java @@ -68,7 +68,7 @@ public class DeploymentIssueReporterTest { Long propertyId2 = 2L; Long propertyId3 = 3L; - tester.updateVersionStatus(Version.fromString("5.1")); + tester.upgradeSystem(Version.fromString("5.1")); // Create and deploy one application for each of three tenants. Application app1 = tester.createApplication("application1", "tenant1", projectId1, propertyId1); @@ -150,7 +150,7 @@ public class DeploymentIssueReporterTest { tester.readyJobTrigger().maintain(); tester.completeUpgradeWithError(app2, version, canaryPackage, systemTest); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(VespaVersion.Confidence.broken, tester.controller().versionStatus().systemVersion().get().confidence()); assertFalse("We have no platform issues initially.", issues.platformIssue()); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/FailureRedeployerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/FailureRedeployerTest.java index a90ad90fe43..981b8c8c52a 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/FailureRedeployerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/FailureRedeployerTest.java @@ -40,7 +40,7 @@ public class FailureRedeployerTest { .region("us-east-3") .build(); Version version = Version.fromString("5.0"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); Application app = tester.createApplication("app1", "tenant1", 1, 11L); tester.jobCompletion(component).application(app).uploadArtifact(applicationPackage).submit(); @@ -50,7 +50,7 @@ public class FailureRedeployerTest { // New version is released version = Version.fromString("5.1"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(version, tester.controller().versionStatus().systemVersion().get().versionNumber()); tester.upgrader().maintain(); tester.readyJobTrigger().maintain(); @@ -67,7 +67,7 @@ public class FailureRedeployerTest { // Another version is released, which cancels any pending upgrades to lower versions version = Version.fromString("5.2"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); tester.upgrader().maintain(); tester.jobCompletion(DeploymentJobs.JobType.productionUsEast3).application(app).unsuccessful().submit(); assertEquals("Application starts upgrading to new version", 2, tester.buildService().jobs().size()); @@ -99,7 +99,7 @@ public class FailureRedeployerTest { .region("us-east-3") .build(); Version version = Version.fromString("5.0"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); Application app = tester.createApplication("app1", "tenant1", 1, 11L); tester.jobCompletion(component).application(app).uploadArtifact(applicationPackage).submit(); @@ -109,7 +109,7 @@ public class FailureRedeployerTest { // New version is released version = Version.fromString("5.1"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(version, tester.controller().versionStatus().systemVersion().get().versionNumber()); tester.upgrader().maintain(); tester.readyJobTrigger().maintain(); @@ -120,7 +120,7 @@ public class FailureRedeployerTest { // Another version is released version = Version.fromString("5.2"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(version, tester.controller().versionStatus().systemVersion().get().versionNumber()); tester.buildService().remove(ControllerTester.buildJob(app, systemTest)); @@ -139,8 +139,7 @@ public class FailureRedeployerTest { // Current system version, matches version in test data Version version = Version.fromString("6.42.1"); - tester.configServer().setDefaultVersion(version); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(version, tester.controller().versionStatus().systemVersion().get().versionNumber()); // Load test data data @@ -159,8 +158,7 @@ public class FailureRedeployerTest { // Current system version, matches version in test data Version version = Version.fromString("6.42.1"); - tester.configServer().setDefaultVersion(version); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(version, tester.controller().versionStatus().systemVersion().get().versionNumber()); // Load test data data diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OutstandingChangeDeployerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OutstandingChangeDeployerTest.java index b95e11d798e..0b55d13a5ad 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OutstandingChangeDeployerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OutstandingChangeDeployerTest.java @@ -29,7 +29,6 @@ public class OutstandingChangeDeployerTest { @Test public void testChangeDeployer() { DeploymentTester tester = new DeploymentTester(); - tester.configServer().setDefaultVersion(new Version(6, 1)); OutstandingChangeDeployer deployer = new OutstandingChangeDeployer(tester.controller(), Duration.ofMinutes(10), new JobControl(new MockCuratorDb())); ApplicationPackage applicationPackage = new ApplicationPackageBuilder() diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgraderTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgraderTest.java index 8ad4b1a4fd9..306244f5b80 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgraderTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgraderTest.java @@ -35,7 +35,7 @@ public class SystemUpgraderTest { ); Version version1 = Version.fromString("6.5"); - tester.updateVersionStatus(version1); + tester.upgradeSystem(version1); tester.systemUpgrader().maintain(); assertTrue("Zones are on current version", onVersion(version1, zone1, zone2, zone3, zone4)); @@ -75,7 +75,7 @@ public class SystemUpgraderTest { tester.controllerTester().zoneRegistry().setUpgradePolicy(UpgradePolicy.create().upgrade(zone)); Version version = Version.fromString("6.5"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); tester.systemUpgrader().maintain(); assertTrue("Zone is on current version", onVersion(version, zone)); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java index 3e2673dc1a5..afd53e7bd3c 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java @@ -40,7 +40,7 @@ public class UpgraderTest { DeploymentTester tester = new DeploymentTester(); Version version = Version.fromString("5.0"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); @@ -60,7 +60,7 @@ public class UpgraderTest { // --- 5.1 is released - everything goes smoothly version = Version.fromString("5.1"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(version, tester.controller().versionStatus().systemVersion().get().versionNumber()); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); @@ -69,14 +69,14 @@ public class UpgraderTest { tester.completeUpgrade(canary0, version, "canary"); assertEquals(version, tester.configServer().lastPrepareVersion().get()); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); assertEquals("One canary pending; nothing else", 2, tester.buildService().jobs().size()); tester.completeUpgrade(canary1, version, "canary"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(VespaVersion.Confidence.normal, tester.controller().versionStatus().systemVersion().get().confidence()); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); @@ -86,21 +86,21 @@ public class UpgraderTest { tester.completeUpgrade(default1, version, "default"); tester.completeUpgrade(default2, version, "default"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(VespaVersion.Confidence.high, tester.controller().versionStatus().systemVersion().get().confidence()); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); assertEquals("Normals done: Should upgrade conservatives", 2, tester.buildService().jobs().size()); tester.completeUpgrade(conservative0, version, "conservative"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); assertEquals("Nothing to do", 0, tester.buildService().jobs().size()); // --- 5.2 is released - which fails a Canary version = Version.fromString("5.2"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(version, tester.controller().versionStatus().systemVersion().get().versionNumber()); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); @@ -108,7 +108,7 @@ public class UpgraderTest { assertEquals("New system version: Should upgrade Canaries", 4, tester.buildService().jobs().size()); tester.completeUpgradeWithError(canary0, version, "canary", stagingTest); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(VespaVersion.Confidence.broken, tester.controller().versionStatus().systemVersion().get().confidence()); tester.upgrader().maintain(); tester.jobCompletion(stagingTest).application(canary0).unsuccessful().submit(); @@ -116,7 +116,7 @@ public class UpgraderTest { // --- A new version is released - which repairs the Canary app and fails a default version = Version.fromString("5.3"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(version, tester.controller().versionStatus().systemVersion().get().versionNumber()); tester.upgrader().maintain(); tester.buildService().remove(ControllerTester.buildJob(canary0, stagingTest)); @@ -128,14 +128,14 @@ public class UpgraderTest { tester.completeUpgrade(canary0, version, "canary"); assertEquals(version, tester.configServer().lastPrepareVersion().get()); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); assertEquals("One canary pending; nothing else", 2, tester.buildService().jobs().size()); tester.completeUpgrade(canary1, version, "canary"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(VespaVersion.Confidence.normal, tester.controller().versionStatus().systemVersion().get().confidence()); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); @@ -146,7 +146,7 @@ public class UpgraderTest { tester.completeUpgrade(default1, version, "default"); tester.completeUpgrade(default2, version, "default"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals("Not enough evidence to mark this as neither broken nor high", VespaVersion.Confidence.normal, tester.controller().versionStatus().systemVersion().get().confidence()); @@ -162,14 +162,14 @@ public class UpgraderTest { tester.deployAndNotify(default0, "default", true, productionUsWest1); tester.deployAndNotify(default0, "default", true, productionUsEast3); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(VespaVersion.Confidence.high, tester.controller().versionStatus().systemVersion().get().confidence()); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); assertEquals("Normals done: Should upgrade conservatives", 2, tester.buildService().jobs().size()); tester.completeUpgrade(conservative0, version, "conservative"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); assertEquals("Applications are on 5.3 - nothing to do", 0, tester.buildService().jobs().size()); @@ -178,12 +178,12 @@ public class UpgraderTest { Version version54 = Version.fromString("5.4"); Application default3 = tester.createAndDeploy("default3", 7, "default"); // need 4 to break a version Application default4 = tester.createAndDeploy("default4", 8, "default"); - tester.updateVersionStatus(version54); + tester.upgradeSystem(version54); tester.upgrader().maintain(); // cause canary upgrades to 5.4 tester.triggerUntilQuiescence(); tester.completeUpgrade(canary0, version54, "canary"); tester.completeUpgrade(canary1, version54, "canary"); - tester.updateVersionStatus(version54); + tester.upgradeSystem(version54); assertEquals(VespaVersion.Confidence.normal, tester.controller().versionStatus().systemVersion().get().confidence()); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); @@ -198,12 +198,12 @@ public class UpgraderTest { tester.completeUpgrade(default0, version54, "default"); // State: Default applications started upgrading to 5.4 (and one completed) Version version55 = Version.fromString("5.5"); - tester.updateVersionStatus(version55); + tester.upgradeSystem(version55); tester.upgrader().maintain(); // cause canary upgrades to 5.5 tester.triggerUntilQuiescence(); tester.completeUpgrade(canary0, version55, "canary"); tester.completeUpgrade(canary1, version55, "canary"); - tester.updateVersionStatus(version55); + tester.upgradeSystem(version55); assertEquals(VespaVersion.Confidence.normal, tester.controller().versionStatus().systemVersion().get().confidence()); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); @@ -230,7 +230,7 @@ public class UpgraderTest { tester.completeUpgradeWithError(default1, version55, "default", stagingTest); tester.completeUpgradeWithError(default2, version55, "default", stagingTest); tester.completeUpgradeWithError(default3, version55, "default", DeploymentJobs.JobType.productionUsWest1); - tester.updateVersionStatus(version55); + tester.upgradeSystem(version55); assertEquals(VespaVersion.Confidence.broken, tester.controller().versionStatus().systemVersion().get().confidence()); // Finish running job, without retry. @@ -255,7 +255,7 @@ public class UpgraderTest { assertEquals("No system version: Nothing to do", 0, tester.buildService().jobs().size()); Version version = Version.fromString("5.0"); // (lower than the hardcoded version in the config server client) - tester.updateVersionStatus(version); + tester.upgradeSystem(version); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); @@ -281,7 +281,7 @@ public class UpgraderTest { // --- A new version is released version = Version.fromString("5.1"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(version, tester.controller().versionStatus().systemVersion().get().versionNumber()); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); @@ -290,14 +290,14 @@ public class UpgraderTest { tester.completeUpgrade(canary0, version, "canary"); assertEquals(version, tester.configServer().lastPrepareVersion().get()); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); assertEquals("One canary pending; nothing else", 2, tester.buildService().jobs().size()); tester.completeUpgrade(canary1, version, "canary"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(VespaVersion.Confidence.normal, tester.controller().versionStatus().systemVersion().get().confidence()); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); @@ -310,7 +310,7 @@ public class UpgraderTest { tester.completeUpgradeWithError(default4, version, "default", systemTest); // > 40% and at least 4 failed - version is broken - tester.updateVersionStatus(version); + tester.upgradeSystem(version); tester.upgrader().maintain(); tester.buildService().clear(); tester.triggerUntilQuiescence(); @@ -327,7 +327,7 @@ public class UpgraderTest { .region("us-east-3") .build(); Version version = Version.fromString("5.0"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); Application app = tester.createApplication("app1", "tenant1", 1, 11L); tester.jobCompletion(component).application(app).uploadArtifact(applicationPackage).submit(); @@ -342,7 +342,7 @@ public class UpgraderTest { // New version is released version = Version.fromString("5.1"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(version, tester.controller().versionStatus().systemVersion().get().versionNumber()); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); @@ -357,7 +357,7 @@ public class UpgraderTest { // New version is released version = Version.fromString("5.2"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(version, tester.controller().versionStatus().systemVersion().get().versionNumber()); // Upgrade is scheduled. system-tests starts, but does not complete @@ -377,7 +377,7 @@ public class UpgraderTest { public void testUpgradeCancelledWithDeploymentInProgress() { DeploymentTester tester = new DeploymentTester(); Version version = Version.fromString("5.0"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); // Setup applications Application canary0 = tester.createAndDeploy("canary0", 1, "canary"); @@ -390,7 +390,7 @@ public class UpgraderTest { // New version is released version = Version.fromString("5.1"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(version, tester.controller().versionStatus().systemVersion().get().versionNumber()); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); @@ -398,7 +398,7 @@ public class UpgraderTest { // Canaries upgrade and raise confidence tester.completeUpgrade(canary0, version, "canary"); tester.completeUpgrade(canary1, version, "canary"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(VespaVersion.Confidence.normal, tester.controller().versionStatus().systemVersion().get().confidence()); // Applications with default policy start upgrading @@ -411,7 +411,7 @@ public class UpgraderTest { tester.completeUpgradeWithError(default1, version, "default", systemTest); tester.completeUpgradeWithError(default2, version, "default", systemTest); tester.completeUpgradeWithError(default3, version, "default", systemTest); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(VespaVersion.Confidence.broken, tester.controller().versionStatus().systemVersion().get().confidence()); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); @@ -443,7 +443,7 @@ public class UpgraderTest { public void testVersionIsBrokenAfterAZoneIsLive() { DeploymentTester tester = new DeploymentTester(); Version v0 = Version.fromString("5.0"); - tester.updateVersionStatus(v0); + tester.upgradeSystem(v0); // Setup applications on V0 Application canary0 = tester.createAndDeploy("canary0", 1, "canary"); @@ -456,7 +456,7 @@ public class UpgraderTest { // V1 is released Version v1 = Version.fromString("5.1"); - tester.updateVersionStatus(v1); + tester.upgradeSystem(v1); assertEquals(v1, tester.controller().versionStatus().systemVersion().get().versionNumber()); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); @@ -464,12 +464,12 @@ public class UpgraderTest { // Canaries upgrade and raise confidence of V+1 (other apps are not upgraded) tester.completeUpgrade(canary0, v1, "canary"); tester.completeUpgrade(canary1, v1, "canary"); - tester.updateVersionStatus(v1); + tester.upgradeSystem(v1); assertEquals(VespaVersion.Confidence.normal, tester.controller().versionStatus().systemVersion().get().confidence()); // V2 is released Version v2 = Version.fromString("5.2"); - tester.updateVersionStatus(v2); + tester.upgradeSystem(v2); assertEquals(v2, tester.controller().versionStatus().systemVersion().get().versionNumber()); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); @@ -477,7 +477,7 @@ public class UpgraderTest { // Canaries upgrade and raise confidence of V2 tester.completeUpgrade(canary0, v2, "canary"); tester.completeUpgrade(canary1, v2, "canary"); - tester.updateVersionStatus(v2); + tester.upgradeSystem(v2); assertEquals(VespaVersion.Confidence.normal, tester.controller().versionStatus().systemVersion().get().confidence()); // We "manually" cancel upgrades to V1 so that we can use the applications to make V2 fail instead @@ -499,7 +499,7 @@ public class UpgraderTest { tester.completeUpgradeWithError(default1, v2, "default", productionUsEast3); tester.completeUpgradeWithError(default2, v2, "default", productionUsEast3); tester.completeUpgradeWithError(default3, v2, "default", productionUsEast3); - tester.updateVersionStatus(v2); + tester.upgradeSystem(v2); assertEquals(VespaVersion.Confidence.broken, tester.controller().versionStatus().systemVersion().get().confidence()); assertEquals(v2, tester.application("default0").deployments().get(ZoneId.from("prod.us-west-1")).version()); @@ -527,7 +527,7 @@ public class UpgraderTest { public void testConfidenceIgnoresFailingApplicationChanges() { DeploymentTester tester = new DeploymentTester(); Version version = Version.fromString("5.0"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); ApplicationPackage canaryPolicy = DeploymentTester.applicationPackage("canary"); ApplicationPackage defaultPolicy = DeploymentTester.applicationPackage("default"); @@ -543,7 +543,7 @@ public class UpgraderTest { // New version is released version = Version.fromString("5.1"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(version, tester.controller().versionStatus().systemVersion().get().versionNumber()); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); @@ -551,7 +551,7 @@ public class UpgraderTest { // Canaries upgrade and raise confidence tester.completeUpgrade(canary0, version, "canary"); tester.completeUpgrade(canary1, version, "canary"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(VespaVersion.Confidence.normal, tester.controller().versionStatus().systemVersion().get().confidence()); // All applications upgrade successfully @@ -562,7 +562,7 @@ public class UpgraderTest { tester.completeUpgrade(default2, version, "default"); tester.completeUpgrade(default3, version, "default"); tester.completeUpgrade(default4, version, "default"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(VespaVersion.Confidence.high, tester.controller().versionStatus().systemVersion().get().confidence()); // Multiple application changes are triggered and fail, but does not affect version confidence as upgrade has @@ -573,7 +573,7 @@ public class UpgraderTest { tester.jobCompletion(component).application(default3).nextBuildNumber().uploadArtifact(defaultPolicy).submit(); tester.jobCompletion(component).application(default2).nextBuildNumber().uploadArtifact(canaryPolicy).unsuccessful().submit(); tester.jobCompletion(component).application(default3).nextBuildNumber(2).uploadArtifact(canaryPolicy).unsuccessful().submit(); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(VespaVersion.Confidence.normal, tester.controller().versionStatus().systemVersion().get().confidence()); } @@ -582,7 +582,7 @@ public class UpgraderTest { ManualClock clock = new ManualClock(Instant.parse("2017-09-26T18:00:00.00Z")); // Tuesday, 18:00 DeploymentTester tester = new DeploymentTester(new ControllerTester(clock)); Version version = Version.fromString("5.0"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); ApplicationPackage applicationPackage = new ApplicationPackageBuilder() .upgradePolicy("canary") @@ -595,7 +595,7 @@ public class UpgraderTest { // New version is released version = Version.fromString("5.1"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); // Application is not upgraded at this time tester.upgrader().maintain(); @@ -626,7 +626,7 @@ public class UpgraderTest { new JobControl(tester.controllerTester().curator())); Version version = Version.fromString("5.0"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); ApplicationPackage applicationPackage = new ApplicationPackageBuilder() .upgradePolicy("canary") @@ -641,7 +641,7 @@ public class UpgraderTest { // New version is released version = Version.fromString("5.1"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); // Application upgrade starts tester.upgrader().maintain(); @@ -678,7 +678,7 @@ public class UpgraderTest { DeploymentTester tester = new DeploymentTester(new ControllerTester(clock)); Version version = Version.fromString("5.0"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); ApplicationPackage applicationPackage = new ApplicationPackageBuilder() .upgradePolicy("canary") @@ -694,7 +694,7 @@ public class UpgraderTest { // New version is released version = Version.fromString("5.1"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); // Application upgrade starts tester.upgrader().maintain(); @@ -709,7 +709,7 @@ public class UpgraderTest { // A day passes and we get a new version tester.clock().advance(Duration.ofDays(1)); version = Version.fromString("5.2"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); assertTrue("Nothing is scheduled", tester.buildService().jobs().isEmpty()); @@ -737,7 +737,7 @@ public class UpgraderTest { public void testReschedulesUpgradeAfterTimeout() { DeploymentTester tester = new DeploymentTester(); Version version = Version.fromString("5.0"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); ApplicationPackage canaryApplicationPackage = new ApplicationPackageBuilder() .upgradePolicy("canary") @@ -763,7 +763,7 @@ public class UpgraderTest { // New version is released version = Version.fromString("5.1"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(version, tester.controller().versionStatus().systemVersion().get().versionNumber()); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); @@ -771,7 +771,7 @@ public class UpgraderTest { // Canaries upgrade and raise confidence tester.completeUpgrade(canary0, version, canaryApplicationPackage); tester.completeUpgrade(canary1, version, canaryApplicationPackage); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(VespaVersion.Confidence.normal, tester.controller().versionStatus().systemVersion().get().confidence()); // Applications with default policy start upgrading @@ -785,7 +785,7 @@ public class UpgraderTest { tester.completeUpgradeWithError(default1, version, defaultApplicationPackage, systemTest); tester.completeUpgradeWithError(default2, version, defaultApplicationPackage, systemTest); tester.completeUpgradeWithError(default3, version, defaultApplicationPackage, systemTest); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(VespaVersion.Confidence.broken, tester.controller().versionStatus().systemVersion().get().confidence()); tester.upgrader().maintain(); @@ -819,7 +819,7 @@ public class UpgraderTest { tester.deployCompletely(default2, defaultApplicationPackageV2, 43); tester.deployCompletely(default3, defaultApplicationPackageV2, 43); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(VespaVersion.Confidence.normal, tester.controller().versionStatus().systemVersion().get().confidence()); tester.upgrader().maintain(); @@ -841,7 +841,7 @@ public class UpgraderTest { public void testThrottlesUpgrades() { DeploymentTester tester = new DeploymentTester(); Version version = Version.fromString("5.0"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); // Setup our own upgrader as we need to control the interval Upgrader upgrader = new Upgrader(tester.controller(), Duration.ofMinutes(10), @@ -863,19 +863,17 @@ public class UpgraderTest { // New version is released and canaries upgrade version = Version.fromString("5.1"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); assertEquals(version, tester.controller().versionStatus().systemVersion().get().versionNumber()); - upgrader.maintain(); tester.triggerUntilQuiescence(); assertEquals(4, tester.buildService().jobs().size()); tester.completeUpgrade(canary0, version, "canary"); tester.completeUpgrade(canary1, version, "canary"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); // Next run upgrades a subset - upgrader.maintain(); - tester.triggerUntilQuiescence(); + tester.readyJobTrigger().maintain(); assertEquals(4, tester.buildService().jobs().size()); tester.completeUpgrade(default0, version, "default"); tester.completeUpgrade(default1, version, "default"); @@ -895,7 +893,7 @@ public class UpgraderTest { public void testAllowApplicationChangeDuringFailingUpgrade() { DeploymentTester tester = new DeploymentTester(); Version version = Version.fromString("5.0"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); ApplicationPackage applicationPackage = new ApplicationPackageBuilder() .environment(Environment.prod) @@ -906,7 +904,7 @@ public class UpgraderTest { // New version is released version = Version.fromString("5.1"); - tester.updateVersionStatus(version); + tester.upgradeSystem(version); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ContainerTester.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ContainerTester.java index 1bdb6eed0b2..2bdc6a493c2 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ContainerTester.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ContainerTester.java @@ -48,14 +48,14 @@ public class ContainerTester { return (ConfigServerMock) container.components().getComponent(ConfigServerMock.class.getName()); } - public void updateVersionStatus() { + public void computeVersionStatus() { controller().updateVersionStatus(VersionStatus.compute(controller())); } - public void updateVersionStatus(Version version) { + public void upgradeSystem(Version version) { controller().curator().writeControllerVersion(controller().hostname(), version); configServer().setDefaultVersion(version); - controller().updateVersionStatus(VersionStatus.compute(controller())); + computeVersionStatus(); } public void assertResponse(Supplier<Request> request, File responseFile) throws IOException { diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java index 3ddbd4c7607..3bfcf6f194c 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java @@ -106,7 +106,7 @@ public class ApplicationApiTest extends ControllerContainerTest { public void testApplicationApi() throws Exception { ContainerControllerTester controllerTester = new ContainerControllerTester(container, responseFiles); ContainerTester tester = controllerTester.containerTester(); - tester.updateVersionStatus(); + tester.computeVersionStatus(); createAthenzDomainWithAdmin(ATHENZ_TENANT_DOMAIN, USER_ID); // (Necessary but not provided in this API) @@ -397,7 +397,7 @@ public class ApplicationApiTest extends ControllerContainerTest { // Setup ContainerControllerTester controllerTester = new ContainerControllerTester(container, responseFiles); ContainerTester tester = controllerTester.containerTester(); - tester.updateVersionStatus(); + tester.computeVersionStatus(); createAthenzDomainWithAdmin(ATHENZ_TENANT_DOMAIN, USER_ID); // Create tenant @@ -433,7 +433,7 @@ public class ApplicationApiTest extends ControllerContainerTest { // Setup ContainerControllerTester controllerTester = new ContainerControllerTester(container, responseFiles); ContainerTester tester = controllerTester.containerTester(); - tester.updateVersionStatus(); + tester.computeVersionStatus(); UserId userId = new UserId("new_user"); createAthenzDomainWithAdmin(ATHENZ_TENANT_DOMAIN, userId); @@ -458,7 +458,7 @@ public class ApplicationApiTest extends ControllerContainerTest { // Setup ContainerControllerTester controllerTester = new ContainerControllerTester(container, responseFiles); ContainerTester tester = controllerTester.containerTester(); - tester.updateVersionStatus(); + tester.computeVersionStatus(); createAthenzDomainWithAdmin(ATHENZ_TENANT_DOMAIN, USER_ID); // Create tenant @@ -534,7 +534,7 @@ public class ApplicationApiTest extends ControllerContainerTest { @Test public void testErrorResponses() throws Exception { ContainerTester tester = new ContainerTester(container, responseFiles); - tester.updateVersionStatus(); + tester.computeVersionStatus(); createAthenzDomainWithAdmin(ATHENZ_TENANT_DOMAIN, USER_ID); // PUT (update) non-existing tenant @@ -845,7 +845,7 @@ public class ApplicationApiTest extends ControllerContainerTest { public void testJobStatusReporting() throws Exception { ContainerControllerTester tester = new ContainerControllerTester(container, responseFiles); addUserToHostedOperatorRole(HostedAthenzIdentities.from(HOSTED_VESPA_OPERATOR)); - tester.containerTester().updateVersionStatus(); + tester.containerTester().computeVersionStatus(); long projectId = 1; Application app = tester.createApplication(); ApplicationPackage applicationPackage = new ApplicationPackageBuilder() @@ -893,7 +893,7 @@ public class ApplicationApiTest extends ControllerContainerTest { @Test public void testJobStatusReportingOutOfCapacity() { ContainerControllerTester tester = new ContainerControllerTester(container, responseFiles); - tester.containerTester().updateVersionStatus(); + tester.containerTester().computeVersionStatus(); long projectId = 1; Application app = tester.createApplication(); 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 fef6fd209e8..9e854c8bf03 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 @@ -43,7 +43,7 @@ public class DeploymentApiTest extends ControllerContainerTest { public void testDeploymentApi() throws IOException { ContainerControllerTester tester = new ContainerControllerTester(container, responseFiles); Version version = Version.fromString("5.0"); - tester.containerTester().updateVersionStatus(version); + tester.containerTester().upgradeSystem(version); ApplicationPackage applicationPackage = new ApplicationPackageBuilder() .environment(Environment.prod) .region("corp-us-east-1") @@ -66,7 +66,7 @@ public class DeploymentApiTest extends ControllerContainerTest { // New version released version = Version.fromString("5.1"); - tester.containerTester().updateVersionStatus(version); + tester.containerTester().upgradeSystem(version); // Applications upgrade, 1/2 succeed tester.upgrader().maintain(); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/ScrewdriverApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/ScrewdriverApiTest.java index aabdae8da6e..f49604c05cb 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/ScrewdriverApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/ScrewdriverApiTest.java @@ -39,7 +39,7 @@ public class ScrewdriverApiTest extends ControllerContainerTest { @Test public void testTriggerJobForApplication() { ContainerControllerTester tester = new ContainerControllerTester(container, responseFiles); - tester.containerTester().updateVersionStatus(); + tester.containerTester().computeVersionStatus(); Application app = tester.createApplication(); tester.controller().applications().lockOrThrow(app.id(), application -> diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java index 951fe28e3b5..6ab998d64cb 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java @@ -116,7 +116,7 @@ public class VersionStatusTest { // - app3 is in production on version1, but then fails in staging test on version2 tester.completeUpgradeWithError(app3, version2, applicationPackage, stagingTest); - tester.updateVersionStatus(); + tester.computeVersionStatus(); List<VespaVersion> versions = tester.controller().versionStatus().versions(); assertEquals("The two versions above exist", 2, versions.size()); @@ -178,7 +178,7 @@ public class VersionStatusTest { // Canaries upgrade to new versions and fail tester.completeUpgrade(canary0, version1, "canary"); tester.completeUpgradeWithError(canary1, version1, "canary", productionUsWest1); - tester.updateVersionStatus(); + tester.computeVersionStatus(); assertEquals("One canary failed: Broken", Confidence.broken, confidence(tester.controller(), version1)); @@ -203,7 +203,7 @@ public class VersionStatusTest { tester.jobCompletion(systemTest).application(canary2).unsuccessful().submit(); tester.jobCompletion(stagingTest).application(canary2).submit(); tester.completeUpgrade(canary2, version2, "canary"); - tester.updateVersionStatus(); + tester.computeVersionStatus(); tester.upgrader().maintain(); tester.triggerUntilQuiescence(); assertEquals("Canaries have upgraded: Normal", @@ -216,7 +216,7 @@ public class VersionStatusTest { tester.completeUpgrade(default5, version2, "default"); tester.completeUpgrade(default6, version2, "default"); tester.completeUpgrade(default7, version2, "default"); - tester.updateVersionStatus(); + tester.computeVersionStatus(); // Remember confidence across restart tester.restartController(); @@ -232,7 +232,7 @@ public class VersionStatusTest { // Another default application upgrades, raising confidence to high tester.completeUpgrade(default8, version2, "default"); tester.completeUpgrade(default9, version2, "default"); - tester.updateVersionStatus(); + tester.computeVersionStatus(); assertEquals("Confidence remains unchanged for version0: High", Confidence.high, confidence(tester.controller(), version0)); @@ -253,7 +253,7 @@ public class VersionStatusTest { tester.completeUpgradeWithError(default1, version3, "default", stagingTest); tester.completeUpgradeWithError(default2, version3, "default", stagingTest); tester.completeUpgradeWithError(default9, version3, "default", stagingTest); - tester.updateVersionStatus(); + tester.computeVersionStatus(); assertEquals("Confidence remains unchanged for version0: High", Confidence.high, confidence(tester.controller(), version0)); @@ -278,19 +278,19 @@ public class VersionStatusTest { // Create and deploy application on current version Application app = tester.createAndDeploy("app", 1, "canary"); - tester.updateVersionStatus(); + tester.computeVersionStatus(); assertEquals(Confidence.high, confidence(tester.controller(), version0)); // Override confidence tester.upgrader().overrideConfidence(version0, Confidence.broken); - tester.updateVersionStatus(); + tester.computeVersionStatus(); assertEquals(Confidence.broken, confidence(tester.controller(), version0)); // New version is released and application upgrades Version version1 = new Version("5.1"); tester.upgradeSystem(version1); tester.completeUpgrade(app, version1, "canary"); - tester.updateVersionStatus(); + tester.computeVersionStatus(); assertEquals(Confidence.high, confidence(tester.controller(), version1)); // Stale override was removed |