aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2019-10-29 11:32:27 +0100
committerGitHub <noreply@github.com>2019-10-29 11:32:27 +0100
commitdd744c7e23f18b41367d70afa6c5fcad4df19830 (patch)
tree381cdfd325bd7c8dd7fd31f1bb63399a5e7849dc
parentf7dbaaf6208a6d7d565cb376093a12ecf619f6d0 (diff)
Revert "Store commit details of latest version"
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VersionStatus.java16
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java10
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTester.java25
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/InternalDeploymentTester.java6
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java13
5 files changed, 32 insertions, 38 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VersionStatus.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VersionStatus.java
index 97506d3f6ea..ab445de5a7f 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VersionStatus.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VersionStatus.java
@@ -99,6 +99,11 @@ public class VersionStatus {
}
infrastructureVersions.putAll(systemApplicationVersions.asVersionMap());
+ // The controller version is the lowest controller version of all controllers
+ ControllerVersion controllerVersion = controllerVersions.keySet().stream()
+ .min(Comparator.naturalOrder())
+ .get();
+
// The system version is the oldest infrastructure version, if that version is newer than the current system
// version
Version newSystemVersion = infrastructureVersions.keySet().stream().min(Comparator.naturalOrder()).get();
@@ -129,7 +134,7 @@ public class VersionStatus {
try {
boolean isReleased = Collections.binarySearch(releasedVersions, statistics.version()) >= 0;
VespaVersion vespaVersion = createVersion(statistics,
- controllerVersions.keySet(),
+ controllerVersion,
systemVersion,
isReleased,
systemApplicationVersions.matching(statistics.version()),
@@ -235,13 +240,11 @@ public class VersionStatus {
}
private static VespaVersion createVersion(DeploymentStatistics statistics,
- Set<ControllerVersion> controllerVersions,
+ ControllerVersion controllerVersion,
Version systemVersion,
boolean isReleased,
NodeVersions nodeVersions,
Controller controller) {
- var latestVersion = controllerVersions.stream().max(Comparator.naturalOrder()).get();
- var controllerVersion = controllerVersions.stream().min(Comparator.naturalOrder()).get();
var isSystemVersion = statistics.version().equals(systemVersion);
var isControllerVersion = statistics.version().equals(controllerVersion.version());
var confidence = controller.curator().readConfidenceOverrides().get(statistics.version());
@@ -260,8 +263,8 @@ public class VersionStatus {
}
// Preserve existing commit details if we've previously computed status for this version
- var commitSha = latestVersion.commitSha();
- var commitDate = latestVersion.commitDate();
+ var commitSha = controllerVersion.commitSha();
+ var commitDate = controllerVersion.commitDate();
if (previousStatus != null) {
commitSha = previousStatus.releaseCommit();
commitDate = previousStatus.committedAt();
@@ -272,7 +275,6 @@ public class VersionStatus {
confidence = previousStatus.confidence();
}
}
-
return new VespaVersion(statistics,
commitSha,
commitDate,
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java
index bd2868aeb0e..53eb30bb2f3 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java
@@ -4,7 +4,6 @@ package com.yahoo.vespa.hosted.controller;
import com.yahoo.component.Version;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.Environment;
-import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.RegionName;
import com.yahoo.config.provision.TenantName;
import com.yahoo.config.provision.zone.ZoneApi;
@@ -193,14 +192,7 @@ public final class ControllerTester {
/** Upgrade controller to given version */
public void upgradeController(Version version, String commitSha, Instant commitDate) {
- for (var hostname : controller().curator().cluster()) {
- upgradeController(hostname, version, commitSha, commitDate);
- }
- }
-
- /** Upgrade controller to given version */
- public void upgradeController(HostName hostname, Version version, String commitSha, Instant commitDate) {
- controller().curator().writeControllerVersion(hostname, new ControllerVersion(version, commitSha, commitDate));
+ controller().curator().writeControllerVersion(controller().hostname(), new ControllerVersion(version, commitSha, commitDate));
computeVersionStatus();
}
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 fdfe348cacb..e5127264b47 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
@@ -6,12 +6,13 @@ import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.InstanceName;
import com.yahoo.config.provision.TenantName;
+import com.yahoo.config.provision.zone.ZoneApi;
import com.yahoo.test.ManualClock;
import com.yahoo.vespa.hosted.controller.Application;
+import com.yahoo.vespa.hosted.controller.Instance;
import com.yahoo.vespa.hosted.controller.ApplicationController;
import com.yahoo.vespa.hosted.controller.Controller;
import com.yahoo.vespa.hosted.controller.ControllerTester;
-import com.yahoo.vespa.hosted.controller.Instance;
import com.yahoo.vespa.hosted.controller.api.integration.deployment.JobType;
import com.yahoo.vespa.hosted.controller.api.integration.stubs.MockBuildService;
import com.yahoo.vespa.hosted.controller.application.ApplicationPackage;
@@ -26,6 +27,8 @@ import com.yahoo.vespa.hosted.controller.maintenance.NameServiceDispatcher;
import com.yahoo.vespa.hosted.controller.maintenance.OutstandingChangeDeployer;
import com.yahoo.vespa.hosted.controller.maintenance.ReadyJobsTrigger;
import com.yahoo.vespa.hosted.controller.maintenance.Upgrader;
+import com.yahoo.vespa.hosted.controller.versions.ControllerVersion;
+import com.yahoo.vespa.hosted.controller.versions.VersionStatus;
import java.time.Duration;
import java.time.Instant;
@@ -131,32 +134,40 @@ public class DeploymentTester {
// TODO(mpolden): Change callers to use ControllerTester#computeVersionStatus and remove this
public void computeVersionStatus() {
- tester.computeVersionStatus();
+ controller().updateVersionStatus(VersionStatus.compute(controller()));
}
// TODO(mpolden): Change callers to use ControllerTester#upgradeController and remove this
public void upgradeController(Version version) {
- tester.upgradeController(version);
+ upgradeController(version, "badc0ffee", Instant.EPOCH);
}
// TODO(mpolden): Change callers to use ControllerTester#upgradeController and remove this
public void upgradeController(Version version, String commitSha, Instant commitDate) {
- tester.upgradeController(version, commitSha, commitDate);
+ controller().curator().writeControllerVersion(controller().hostname(), new ControllerVersion(version, commitSha, commitDate));
+ computeVersionStatus();
}
// TODO(mpolden): Change callers to use ControllerTester#upgradeSystemApplications and remove this
public void upgradeSystemApplications(Version version) {
- tester.upgradeSystemApplications(version);
+ upgradeSystemApplications(version, SystemApplication.all());
}
// TODO(mpolden): Change callers to use ControllerTester#upgradeSystemApplications and remove this
public void upgradeSystemApplications(Version version, List<SystemApplication> systemApplications) {
- tester.upgradeSystemApplications(version, systemApplications);
+ for (ZoneApi zone : tester.zoneRegistry().zones().all().zones()) {
+ for (SystemApplication application : systemApplications) {
+ tester.configServer().setVersion(application.id(), zone.getId(), version);
+ tester.configServer().convergeServices(application.id(), zone.getId());
+ }
+ }
+ computeVersionStatus();
}
// TODO(mpolden): Change callers to use ControllerTester#upgradeSystem and remove this
public void upgradeSystem(Version version) {
- tester.upgradeSystem(version);
+ upgradeController(version);
+ upgradeSystemApplications(version);
upgrader().maintain();
readyJobTrigger().maintain();
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/InternalDeploymentTester.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/InternalDeploymentTester.java
index 0b5e44aad70..fb9367cc020 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/InternalDeploymentTester.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/InternalDeploymentTester.java
@@ -82,11 +82,7 @@ public class InternalDeploymentTester {
public Instance instance(ApplicationId id) { return tester.instance(id); }
public InternalDeploymentTester() {
- this(new ControllerTester());
- }
-
- public InternalDeploymentTester(ControllerTester controllerTester) {
- tester = new DeploymentTester(controllerTester);
+ tester = new DeploymentTester();
jobs = tester.controller().jobController();
routing = tester.controllerTester().serviceRegistry().routingGeneratorMock();
cloud = (MockTesterCloud) tester.controller().jobController().cloud();
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 380f1c6dd48..c3bb5cb568f 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
@@ -386,16 +386,9 @@ public class VersionStatusTest {
@Test
public void testCommitDetailsPreservation() {
- HostName controller1 = HostName.from("controller-1");
- HostName controller2 = HostName.from("controller-2");
- HostName controller3 = HostName.from("controller-3");
- MockCuratorDb db = new MockCuratorDb(Stream.of(controller1, controller2, controller3)
- .map(hostName -> hostName.value() + ":2222")
- .collect(Collectors.joining(",")));
- InternalDeploymentTester tester = new InternalDeploymentTester(new ControllerTester(db));
-
+ InternalDeploymentTester tester = new InternalDeploymentTester();
// Commit details are set for initial version
- var version0 = new Version("7.2");
+ var version0 = new Version("6.2");
var commitSha0 = "badc0ffee";
var commitDate0 = Instant.EPOCH;
tester.controllerTester().upgradeSystem(version0);
@@ -407,7 +400,7 @@ public class VersionStatusTest {
tester.deploymentContext().submit().deploy();
// Commit details are updated for new version
- var version1 = new Version("7.3");
+ var version1 = new Version("6.3");
var commitSha1 = "deadbeef";
var commitDate1 = Instant.ofEpochMilli(123);
tester.controllerTester().upgradeController(version1, commitSha1, commitDate1);