diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2020-01-23 21:29:12 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2020-01-23 21:29:12 +0100 |
commit | fd89173ecc6ea1a196a86ee4c43852bcda31fe6a (patch) | |
tree | 351280383a5e38f8f6c8fae90285a8926b4a52eb /node-repository | |
parent | 51d4b6fcc2dd00909365ebe9e9c797d341a12d33 (diff) |
Support patching reservedTo
Diffstat (limited to 'node-repository')
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java | 7 | ||||
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodePatcher.java | 3 |
2 files changed, 10 insertions, 0 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java index 3778b7aa625..4ad72063b6b 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java @@ -294,6 +294,13 @@ public final class Node { allocation, history, type, reports, modelName, reservedTo); } + public Node withReservedTo(TenantName tenant) { + if (type != NodeType.host) + throw new IllegalArgumentException("Only host nodes can be reserved, " + hostname + " has type " + type); + return new Node(id, ipConfig, hostname, parentHostname, flavor, status, state, + allocation, history, type, reports, modelName, Optional.of(tenant)); + } + /** Returns a copy of this node which is not reserved to a tenant */ public Node withoutReservedTo() { return new Node(id, ipConfig, hostname, parentHostname, flavor, status, state, 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 81cf401d358..503e25b46b6 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 @@ -6,6 +6,7 @@ import com.yahoo.config.provision.DockerImage; import com.yahoo.config.provision.Flavor; import com.yahoo.config.provision.NodeFlavors; import com.yahoo.config.provision.NodeResources; +import com.yahoo.config.provision.TenantName; import com.yahoo.io.IOUtils; import com.yahoo.slime.Inspector; import com.yahoo.slime.ObjectTraverser; @@ -166,6 +167,8 @@ public class NodePatcher { return node.withModelName(asString(value)); case "requiredDiskSpeed": return patchRequiredDiskSpeed(asString(value)); + case "reservedTo": + return node.withReservedTo(TenantName.from(value.asString())); default : throw new IllegalArgumentException("Could not apply field '" + name + "' on a node: No such modifiable field"); } |