diff options
author | Valerij Fredriksen <valerijf@oath.com> | 2018-03-05 13:09:00 +0100 |
---|---|---|
committer | Valerij Fredriksen <valerijf@oath.com> | 2018-03-05 13:09:00 +0100 |
commit | 179f08521d9630c773e84f867c5d1e8892c75bf9 (patch) | |
tree | 9a53a8fec2ed556554f63eafbae53350b3692a1d /node-repository | |
parent | 60e501d19c4fd783a5a9d678d71e6ad3237379ca (diff) |
Handle the new NodeTypes
Diffstat (limited to 'node-repository')
7 files changed, 15 insertions, 7 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java index c34f66379d3..a24c282d48a 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java @@ -506,7 +506,7 @@ public class NodeRepository extends AbstractComponent { private List<Node> removeRecursively(Node node, boolean force) { try (Mutex lock = lockUnallocated()) { - List<Node> removed = node.type() != NodeType.host ? + List<Node> removed = !node.type().isDockerHost() ? new ArrayList<>() : getChildNodes(node.hostname()).stream() .filter(child -> force || verifyRemovalIsAllowed(child, true)) diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirer.java index b2b20018418..78552971769 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirer.java @@ -4,7 +4,6 @@ package com.yahoo.vespa.hosted.provision.maintenance; import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.Flavor; -import com.yahoo.config.provision.NodeType; import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.Zone; import com.yahoo.vespa.hosted.provision.Node; @@ -93,7 +92,7 @@ public class FailedExpirer extends Maintainer { List<Node> nodesToRecycle = new ArrayList<>(); for (Node candidate : nodes) { if (hasHardwareIssue(candidate)) { - List<String> unparkedChildren = candidate.type() != NodeType.host ? Collections.emptyList() : + List<String> unparkedChildren = !candidate.type().isDockerHost() ? Collections.emptyList() : nodeRepository.getChildNodes(candidate.hostname()).stream() .filter(node -> node.state() != Node.State.parked) .map(Node::hostname) diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java index a2a7aa2545a..d605958d6bc 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java @@ -297,7 +297,7 @@ public class NodeFailer extends Maintainer { throttlePolicy.minimumAllowedToFail); boolean throttle = allowedFailedNodes < recentlyFailedNodes || - (allowedFailedNodes == recentlyFailedNodes && node.type() != NodeType.host); + (allowedFailedNodes == recentlyFailedNodes && !node.type().isDockerHost()); if (throttle) { log.info(String.format("Want to fail node %s, but throttling is in effect: %s", node.hostname(), throttlePolicy.toHumanReadableString())); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirer.java index 5cfb9d73c91..6a2ca90df09 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirer.java @@ -86,14 +86,14 @@ public class RetiredExpirer extends Maintainer { /** * Checks if the node can be removed: - * if the node is {@link NodeType#host}, it will only be removed if it has no children, + * if the node is a docker host, it will only be removed if it has no children, * or all its children are parked or failed * Otherwise, a removal is allowed if either of these are true: * - The node has been in state {@link History.Event.Type#retired} for longer than {@link #retiredExpiry} * - Orchestrator allows it */ private boolean canRemove(Node node) { - if (node.type() == NodeType.host) { + if (node.type().isDockerHost()) { return nodeRepository() .getChildNodes(node.hostname()).stream() .allMatch(child -> child.state() == Node.State.parked || child.state() == Node.State.failed); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java index dc26303d804..110313de197 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java @@ -322,6 +322,9 @@ public class NodeSerializer { case "tenant" : return NodeType.tenant; case "host" : return NodeType.host; case "proxy" : return NodeType.proxy; + case "proxyhost" : return NodeType.proxyhost; + case "config" : return NodeType.config; + case "confighost" : return NodeType.confighost; default : throw new IllegalArgumentException("Unknown node type '" + typeString + "'"); } } @@ -330,6 +333,9 @@ public class NodeSerializer { case tenant: return "tenant"; case host: return "host"; case proxy: return "proxy"; + case proxyhost: return "proxyhost"; + case config: return "config"; + case confighost: return "confighost"; } throw new IllegalArgumentException("Serialized form of '" + type + "' not defined"); } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodePatcher.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodePatcher.java index 85322ae1c91..730803708e7 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodePatcher.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodePatcher.java @@ -49,7 +49,7 @@ public class NodePatcher { inspector = SlimeUtils.jsonToSlime(IOUtils.readBytes(json, 1000 * 1000)).get(); this.node = node; this.nodeRepository = nodeRepository; - this.children = node.type() == NodeType.host ? + this.children = node.type().isDockerHost() ? nodeRepository.getChildNodes(node.hostname()) : Collections.emptyList(); } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java index 34111797de6..c6667fd9d47 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java @@ -234,6 +234,9 @@ public class NodesApiHandler extends LoggingRequestHandler { case "tenant" : return NodeType.tenant; case "host" : return NodeType.host; case "proxy" : return NodeType.proxy; + case "proxyhost" : return NodeType.proxyhost; + case "config" : return NodeType.config; + case "confighost" : return NodeType.confighost; default: throw new IllegalArgumentException("Unknown node type '" + object.asString() + "'"); } } |