aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java')
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java96
1 files changed, 50 insertions, 46 deletions
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java
index 0b987bff6ce..a128bfb897d 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java
@@ -13,7 +13,7 @@ import com.yahoo.vespa.hosted.controller.application.SystemApplication;
import com.yahoo.vespa.hosted.controller.integration.NodeRepositoryMock;
import com.yahoo.vespa.hosted.controller.integration.ZoneApiMock;
import com.yahoo.vespa.hosted.controller.versions.NodeVersion;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.time.Duration;
import java.util.Collection;
@@ -23,8 +23,8 @@ import java.util.function.UnaryOperator;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* @author mpolden
@@ -35,7 +35,7 @@ public class OsUpgraderTest {
private final OsVersionStatusUpdater statusUpdater = new OsVersionStatusUpdater(tester.controller(), Duration.ofDays(1));
@Test
- public void upgrade_os() {
+ void upgrade_os() {
CloudName cloud1 = CloudName.from("c1");
CloudName cloud2 = CloudName.from("c2");
ZoneApi zone0 = zone("prod.us-north-42", "prod.controller", cloud1);
@@ -45,18 +45,18 @@ public class OsUpgraderTest {
ZoneApi zone4 = zone("prod.us-east-3", cloud1);
ZoneApi zone5 = zone("prod.us-north-1", cloud2);
UpgradePolicy upgradePolicy = UpgradePolicy.builder()
- .upgrade(zone0)
- .upgrade(zone1)
- .upgradeInParallel(zone2, zone3)
- .upgrade(zone5) // Belongs to a different cloud and is ignored by this upgrader
- .upgrade(zone4)
- .build();
+ .upgrade(zone0)
+ .upgrade(zone1)
+ .upgradeInParallel(zone2, zone3)
+ .upgrade(zone5) // Belongs to a different cloud and is ignored by this upgrader
+ .upgrade(zone4)
+ .build();
OsUpgrader osUpgrader = osUpgrader(upgradePolicy, cloud1, false);
// Bootstrap system
List<ZoneId> nonControllerZones = Stream.of(zone1, zone2, zone3, zone4, zone5)
- .map(ZoneApi::getVirtualId)
- .collect(Collectors.toList());
+ .map(ZoneApi::getVirtualId)
+ .collect(Collectors.toList());
tester.configServer().bootstrap(nonControllerZones, List.of(SystemApplication.tenantHost));
tester.configServer().addNodes(List.of(zone0.getVirtualId()), List.of(SystemApplication.controllerHost));
@@ -105,10 +105,11 @@ public class OsUpgraderTest {
// zone 2 and 3: completes upgrade
completeUpgrade(version1, SystemApplication.tenantHost, zone2, zone3);
- assertEquals("Current version is unchanged for node deferring OS upgrade", Version.emptyVersion,
- nodeRepository().list(zone2.getVirtualId(), NodeFilter.all().hostnames(nodeDeferringOsUpgrade.hostname()))
- .get(0)
- .currentOsVersion());
+ assertEquals(Version.emptyVersion,
+ nodeRepository().list(zone2.getVirtualId(), NodeFilter.all().hostnames(nodeDeferringOsUpgrade.hostname()))
+ .get(0)
+ .currentOsVersion(),
+ "Current version is unchanged for node deferring OS upgrade");
// zone 4: begins upgrading
osUpgrader.maintain();
@@ -121,14 +122,14 @@ public class OsUpgraderTest {
osUpgrader.maintain();
assertWanted(version1, SystemApplication.tenantHost, zone1, zone2, zone3, zone4);
statusUpdater.maintain();
- assertTrue("All non-deferring nodes are on target version",
- tester.controller().osVersionStatus().nodesIn(cloud1).stream()
- .filter(node -> !node.hostname().equals(nodeDeferringOsUpgrade.hostname()))
- .allMatch(node -> node.currentVersion().equals(version1)));
+ assertTrue(tester.controller().osVersionStatus().nodesIn(cloud1).stream()
+ .filter(node -> !node.hostname().equals(nodeDeferringOsUpgrade.hostname()))
+ .allMatch(node -> node.currentVersion().equals(version1)),
+ "All non-deferring nodes are on target version");
}
@Test
- public void upgrade_os_with_budget() {
+ void upgrade_os_with_budget() {
CloudName cloud = CloudName.from("cloud");
ZoneApi zone0 = zone("prod.us-north-42", "prod.controller", cloud);
ZoneApi zone1 = zone("dev.us-east-1", cloud);
@@ -136,17 +137,17 @@ public class OsUpgraderTest {
ZoneApi zone3 = zone("prod.us-central-1", cloud);
ZoneApi zone4 = zone("prod.eu-west-1", cloud);
UpgradePolicy upgradePolicy = UpgradePolicy.builder()
- .upgrade(zone0)
- .upgrade(zone1)
- .upgradeInParallel(zone2, zone3)
- .upgrade(zone4)
- .build();
+ .upgrade(zone0)
+ .upgrade(zone1)
+ .upgradeInParallel(zone2, zone3)
+ .upgrade(zone4)
+ .build();
OsUpgrader osUpgrader = osUpgrader(upgradePolicy, cloud, true);
// Bootstrap system
List<SystemApplication> nodeTypes = List.of(SystemApplication.configServerHost, SystemApplication.tenantHost);
tester.configServer().bootstrap(List.of(zone1.getId(), zone2.getId(), zone3.getId(), zone4.getId()),
- nodeTypes);
+ nodeTypes);
tester.configServer().addNodes(List.of(zone0.getVirtualId()), List.of(SystemApplication.controllerHost));
// Upgrade with budget
@@ -159,7 +160,7 @@ public class OsUpgraderTest {
// Controllers upgrade first
osUpgrader.maintain();
assertWanted(version, SystemApplication.controllerHost, zone0);
- assertEquals("Controller zone gets a zero budget", Duration.ZERO, upgradeBudget(zone0, SystemApplication.controllerHost, version));
+ assertEquals(Duration.ZERO, upgradeBudget(zone0, SystemApplication.controllerHost, version), "Controller zone gets a zero budget");
completeUpgrade(version, SystemApplication.controllerHost, zone0);
statusUpdater.maintain();
assertEquals(3, nodesOn(version).size());
@@ -175,8 +176,9 @@ public class OsUpgraderTest {
osUpgrader.maintain();
for (var zone : List.of(zone1, zone2, zone3)) {
for (var nodeType : nodeTypes) {
- assertEquals("Parallel prod zones share the budget of a single zone", Duration.ofHours(4),
- upgradeBudget(zone, nodeType, version));
+ assertEquals(Duration.ofHours(4),
+ upgradeBudget(zone, nodeType, version),
+ "Parallel prod zones share the budget of a single zone");
completeUpgrade(version, nodeType, zone);
}
}
@@ -184,31 +186,32 @@ public class OsUpgraderTest {
// Last zone upgrades
osUpgrader.maintain();
for (var nodeType : nodeTypes) {
- assertEquals(nodeType + " in last prod zone gets the budget of a single zone", Duration.ofHours(4),
- upgradeBudget(zone4, nodeType, version));
+ assertEquals(Duration.ofHours(4),
+ upgradeBudget(zone4, nodeType, version),
+ nodeType + " in last prod zone gets the budget of a single zone");
completeUpgrade(version, nodeType, zone4);
}
// All host applications upgraded
statusUpdater.maintain();
- assertTrue("All nodes on target version", tester.controller().osVersionStatus().nodesIn(cloud).stream()
- .allMatch(node -> node.currentVersion().equals(version)));
+ assertTrue(tester.controller().osVersionStatus().nodesIn(cloud).stream()
+ .allMatch(node -> node.currentVersion().equals(version)), "All nodes on target version");
}
@Test
- public void upgrade_os_nodes_choose_newer_version() {
+ void upgrade_os_nodes_choose_newer_version() {
CloudName cloud = CloudName.from("cloud");
ZoneApi zone1 = zone("dev.us-east-1", cloud);
ZoneApi zone2 = zone("prod.us-west-1", cloud);
UpgradePolicy upgradePolicy = UpgradePolicy.builder()
- .upgrade(zone1)
- .upgrade(zone2)
- .build();
+ .upgrade(zone1)
+ .upgrade(zone2)
+ .build();
OsUpgrader osUpgrader = osUpgrader(upgradePolicy, cloud, false);
// Bootstrap system
tester.configServer().bootstrap(List.of(zone1.getId(), zone2.getId()),
- List.of(SystemApplication.tenantHost));
+ List.of(SystemApplication.tenantHost));
// New OS version released
Version version = Version.fromString("7.1");
@@ -234,14 +237,14 @@ public class OsUpgraderTest {
// No more upgrades
osUpgrader.maintain();
assertWanted(version, SystemApplication.tenantHost, zone1, zone2);
- assertTrue("All nodes on target version or newer", tester.controller().osVersionStatus().nodesIn(cloud).stream()
- .noneMatch(node -> node.currentVersion().isBefore(version)));
+ assertTrue(tester.controller().osVersionStatus().nodesIn(cloud).stream()
+ .noneMatch(node -> node.currentVersion().isBefore(version)), "All nodes on target version or newer");
}
private Duration upgradeBudget(ZoneApi zone, SystemApplication application, Version version) {
var upgradeBudget = tester.configServer().nodeRepository().osUpgradeBudget(zone.getVirtualId(), application.nodeType(), version);
- assertTrue("Expected budget for upgrade to " + version + " of " + application.id() + " in " + zone.getVirtualId(),
- upgradeBudget.isPresent());
+ assertTrue(upgradeBudget.isPresent(),
+ "Expected budget for upgrade to " + version + " of " + application.id() + " in " + zone.getVirtualId());
return upgradeBudget.get();
}
@@ -258,9 +261,10 @@ public class OsUpgraderTest {
private void assertWanted(Version version, SystemApplication application, ZoneApi... zones) {
for (var zone : zones) {
- assertEquals("Target version set for " + application + " in " + zone.getVirtualId(), version,
+ assertEquals(version,
nodeRepository().targetVersionsOf(zone.getVirtualId()).osVersion(application.nodeType())
- .orElse(Version.emptyVersion));
+ .orElse(Version.emptyVersion),
+ "Target version set for " + application + " in " + zone.getVirtualId());
}
}
@@ -268,7 +272,7 @@ public class OsUpgraderTest {
ZoneApi... zones) {
for (ZoneApi zone : zones) {
for (Node node : nodesRequiredToUpgrade(zone, application)) {
- assertEquals(application + " version in " + zone, version, versionField.apply(node));
+ assertEquals(version, versionField.apply(node), application + " version in " + zone);
}
}
}