From 5908a0a212735ab18831f22d3710d34792d56aab Mon Sep 17 00:00:00 2001 From: Martin Polden Date: Mon, 31 May 2021 11:11:35 +0200 Subject: Defer encryption if host is upgrading Vespa --- .../yahoo/vespa/hosted/provision/maintenance/HostEncrypter.java | 9 +++++++++ .../vespa/hosted/provision/maintenance/OsUpgradeActivator.java | 1 - 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'node-repository') 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 d37343f2c75..3fcbb33af1e 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 @@ -49,12 +49,21 @@ public class HostEncrypter extends NodeRepositoryMaintainer { NodeList allNodes = nodeRepository().nodes().list(); for (var nodeType : NodeType.values()) { if (!nodeType.isHost()) continue; + if (upgradingVespa(allNodes, nodeType)) continue; unencryptedHosts(allNodes, nodeType).forEach(host -> encrypt(host, now)); triggerRestart(allNodes, nodeType); } return true; } + /** Returns whether any node of given type is currently upgrading its Vespa version */ + private boolean upgradingVespa(NodeList allNodes, NodeType hostType) { + return allNodes.state(Node.State.ready, Node.State.active) + .nodeType(hostType) + .changingVersion() + .size() > 0; + } + /** Returns unencrypted hosts of given type that can be encrypted */ private List unencryptedHosts(NodeList allNodes, NodeType hostType) { if (!hostType.isHost()) throw new IllegalArgumentException("Expected host type, got " + hostType); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/OsUpgradeActivator.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/OsUpgradeActivator.java index 3ff4ca89ad4..4eba15307cb 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/OsUpgradeActivator.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/OsUpgradeActivator.java @@ -38,7 +38,6 @@ public class OsUpgradeActivator extends NodeRepositoryMaintainer { .list(Node.State.ready, Node.State.active) .nodeType(type) .changingVersion() - .asList() .isEmpty(); } -- cgit v1.2.3