summaryrefslogtreecommitdiffstats
path: root/orchestrator/src/main
diff options
context:
space:
mode:
authorHÃ¥kon Hallingstad <hakon.hallingstad@gmail.com>2021-05-14 16:37:04 +0200
committerGitHub <noreply@github.com>2021-05-14 16:37:04 +0200
commit28f7c118d761892b37db8fd4650a640148cf6cb6 (patch)
tree0b4dfe7b10ff41bb813a7f13095d51360e09b483 /orchestrator/src/main
parent202da99a968c4d55abb6fd44f07478d6a4b80ed4 (diff)
Revert "Revert "Send setNodeState to CC even if storage node is down""
Diffstat (limited to 'orchestrator/src/main')
-rw-r--r--orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ApplicationApi.java2
-rw-r--r--orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ApplicationApiImpl.java10
-rw-r--r--orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/HostedVespaPolicy.java6
3 files changed, 8 insertions, 10 deletions
diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ApplicationApi.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ApplicationApi.java
index a6353e39610..a8734dd67e5 100644
--- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ApplicationApi.java
+++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ApplicationApi.java
@@ -36,6 +36,6 @@ public interface ApplicationApi {
}
List<StorageNode> getStorageNodesInGroupInClusterOrder();
- List<StorageNode> getUpStorageNodesInGroupInClusterOrder();
+ List<StorageNode> getNoRemarksStorageNodesInGroupInClusterOrder();
List<StorageNode> getSuspendedStorageNodesInGroupInReverseClusterOrder();
}
diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ApplicationApiImpl.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ApplicationApiImpl.java
index 29307b36f4b..efbf9ff7981 100644
--- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ApplicationApiImpl.java
+++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/model/ApplicationApiImpl.java
@@ -10,12 +10,11 @@ import com.yahoo.vespa.orchestrator.OrchestratorContext;
import com.yahoo.vespa.orchestrator.OrchestratorUtil;
import com.yahoo.vespa.orchestrator.controller.ClusterControllerClientFactory;
import com.yahoo.vespa.orchestrator.status.ApplicationInstanceStatus;
+import com.yahoo.vespa.orchestrator.status.ApplicationLock;
import com.yahoo.vespa.orchestrator.status.HostInfos;
import com.yahoo.vespa.orchestrator.status.HostStatus;
-import com.yahoo.vespa.orchestrator.status.ApplicationLock;
import java.time.Clock;
-import java.util.Collection;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
@@ -24,8 +23,6 @@ import java.util.Set;
import java.util.function.Predicate;
import java.util.stream.Collectors;
-import static com.yahoo.vespa.orchestrator.OrchestratorUtil.getHostsUsedByApplicationInstance;
-
/**
* @author hakonhall
*/
@@ -87,11 +84,12 @@ public class ApplicationApiImpl implements ApplicationApi {
}
@Override
- public List<StorageNode> getUpStorageNodesInGroupInClusterOrder() {
+ public List<StorageNode> getNoRemarksStorageNodesInGroupInClusterOrder() {
return clusterInOrder.stream()
- .map(ClusterApi::upStorageNodeInGroup)
+ .map(ClusterApi::storageNodeInGroup)
.filter(Optional::isPresent)
.map(Optional::get)
+ .filter(x -> hostInfos.getOrNoRemarks(x.hostName()).status() == HostStatus.NO_REMARKS)
.collect(Collectors.toList());
}
diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/HostedVespaPolicy.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/HostedVespaPolicy.java
index 8090a4e95c4..d9fc2a989de 100644
--- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/HostedVespaPolicy.java
+++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/policy/HostedVespaPolicy.java
@@ -48,9 +48,9 @@ public class HostedVespaPolicy implements Policy {
suspensionReasons.mergeWith(clusterPolicy.verifyGroupGoingDownIsFine(cluster));
}
- // Ask Cluster Controller to set UP storage nodes in maintenance.
- // These storage nodes are guaranteed to be NO_REMARKS
- for (StorageNode storageNode : application.getUpStorageNodesInGroupInClusterOrder()) {
+ // Ask Cluster Controller to set storage nodes in maintenance, unless the node is already allowed
+ // to be down (or permanently down) in case they are guaranteed to be in maintenance already.
+ for (StorageNode storageNode : application.getNoRemarksStorageNodesInGroupInClusterOrder()) {
storageNode.setNodeState(context, ClusterControllerNodeState.MAINTENANCE);
}