aboutsummaryrefslogtreecommitdiffstats
path: root/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java')
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java19
1 files changed, 16 insertions, 3 deletions
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java
index 0fa9aa610a4..fda4c47b1ee 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java
@@ -38,7 +38,6 @@ import static org.junit.Assert.fail;
public class OsVersionsTest {
private final ProvisioningTester tester = new ProvisioningTester.Builder().build();
- private final ApplicationId infraApplication = ApplicationId.from("hosted-vespa", "infra", "default");
@Test
public void upgrade() {
@@ -159,7 +158,7 @@ public class OsVersionsTest {
}
@Test
- public void upgrade_by_retiring() {
+ public void upgrade_and_downgrade_by_retiring() {
int maxActiveUpgrades = 2;
var versions = new OsVersions(tester.nodeRepository(), Cloud.builder().dynamicProvisioning(true).build());
setMaxActiveUpgrades(maxActiveUpgrades);
@@ -196,7 +195,7 @@ public class OsVersionsTest {
assertEquals(2, deprovisioningChildrenOf(nodesDeprovisioning.asList().get(0)).size());
completeReprovisionOf(nodesDeprovisioning.asList());
- // Remaining hosts complete upgrades one by one
+ // Remaining hosts upgrade, batch by batch
for (int i = 0; i < hostCount - 2; i += maxActiveUpgrades) {
versions.resumeUpgradeOf(NodeType.host, true);
nodesDeprovisioning = hostNodes.get().deprovisioning();
@@ -212,6 +211,20 @@ public class OsVersionsTest {
// Resuming after everything has upgraded does nothing
versions.resumeUpgradeOf(NodeType.host, true);
assertEquals(0, hostNodes.get().deprovisioning().size());
+
+ // Downgrade is triggered
+ var version0 = Version.fromString("7.0");
+ versions.setTarget(NodeType.host, version0, true);
+
+ // Hosts downgrade, batch by batch
+ for (int i = 0; i < hostCount; i += maxActiveUpgrades) {
+ versions.resumeUpgradeOf(NodeType.host, true);
+ nodesDeprovisioning = hostNodes.get().deprovisioning();
+ assertEquals(maxActiveUpgrades, nodesDeprovisioning.size());
+ completeReprovisionOf(nodesDeprovisioning.asList());
+ }
+ assertEquals(hostCount, hostNodes.get().onOsVersion(version0).not().deprovisioning().size());
+ assertEquals(hostCount*2, tester.nodeRepository().nodes().list(Node.State.deprovisioned).size());
}
@Test