aboutsummaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2021-06-01 16:13:34 +0200
committerMartin Polden <mpolden@mpolden.no>2021-06-01 16:13:34 +0200
commit904976d65e9ef051351a27c133506034f26f001f (patch)
tree7d97d952dfef147d651bc416f21d65ae975e7ec0 /node-repository
parent81a030c3131bb11bbc24bc868ea659201e6ec1cb (diff)
Skip restart when encrypting hosts
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostEncrypter.java12
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostEncrypterTest.java13
2 files changed, 2 insertions, 23 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostEncrypter.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostEncrypter.java
index 3fcbb33af1e..caf20463f60 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostEncrypter.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostEncrypter.java
@@ -11,7 +11,6 @@ import com.yahoo.vespa.hosted.provision.NodeList;
import com.yahoo.vespa.hosted.provision.NodeRepository;
import com.yahoo.vespa.hosted.provision.node.Agent;
import com.yahoo.vespa.hosted.provision.node.ClusterId;
-import com.yahoo.vespa.hosted.provision.node.filter.NodeListFilter;
import java.time.Duration;
import java.time.Instant;
@@ -51,7 +50,6 @@ public class HostEncrypter extends NodeRepositoryMaintainer {
if (!nodeType.isHost()) continue;
if (upgradingVespa(allNodes, nodeType)) continue;
unencryptedHosts(allNodes, nodeType).forEach(host -> encrypt(host, now));
- triggerRestart(allNodes, nodeType);
}
return true;
}
@@ -106,16 +104,6 @@ public class HostEncrypter extends NodeRepositoryMaintainer {
return Math.max(0, limit - hosts.encrypting().size());
}
- /** Trigger restart of encrypting nodes to allow disk encryption to happen */
- private void triggerRestart(NodeList allNodes, NodeType nodeType) {
- NodeList hostsReadyToEncrypt = allNodes.nodeType(nodeType)
- .state(Node.State.parked)
- .encrypting()
- .not().matching(node -> node.allocation().isPresent() &&
- node.allocation().get().restartGeneration().pending());
- nodeRepository().nodes().restart(NodeListFilter.from(hostsReadyToEncrypt.asList()));
- }
-
private void encrypt(Node host, Instant now) {
LOG.info("Retiring and encrypting " + host);
nodeRepository().nodes().encrypt(host.hostname(), Agent.HostEncrypter, now);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostEncrypterTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostEncrypterTest.java
index 010fc40ded7..5cae181f87d 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostEncrypterTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostEncrypterTest.java
@@ -122,21 +122,12 @@ public class HostEncrypterTest {
tester.prepareAndActivateInfraApplication(infraApplication, NodeType.host);
}
- private void parkRetiredHosts() {
- // Redeploy to park retired hosts
- replaceNodes(infraApplication, (application) -> tester.prepareAndActivateInfraApplication(application, NodeType.host));
- // Trigger restart of parked nodes
- encrypter.maintain();
- encrypter.maintain(); // Trigger restart only once
- }
-
private void completeEncryptionOf(List<Node> nodes) {
Instant now = tester.clock().instant();
- parkRetiredHosts();
+ // Redeploy to park retired hosts
+ replaceNodes(infraApplication, (application) -> tester.prepareAndActivateInfraApplication(application, NodeType.host));
List<Node> patchedNodes = tester.patchNodes(nodes, (node) -> {
assertSame(Node.State.parked, node.state());
- assertEquals(node + " has restart pending", 1,
- node.allocation().get().restartGeneration().wanted() - node.allocation().get().restartGeneration().current());
assertTrue(node + " wants to encrypt", node.reports().getReport(Report.WANT_TO_ENCRYPT_ID).isPresent());
return node.with(node.reports().withReport(Report.basicReport(Report.DISK_ENCRYPTED_ID,
Report.Type.UNSPECIFIED,