diff options
author | Valerij Fredriksen <freva@users.noreply.github.com> | 2017-06-07 13:29:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-07 13:29:42 +0200 |
commit | 5784f8061bdef3d876cbfa47e1eec8448bb2df09 (patch) | |
tree | f50d8cf01881a8fe2c93b69822df817bafa1961d /node-repository | |
parent | 66d4227123bff1710b5f7c82de7b1234128772fd (diff) | |
parent | c289321f23805f47ad525cacf31ff2d48e7847c7 (diff) |
Merge pull request #2575 from yahoo/freva/add-wantToUprovision-flag
Freva/add want to uprovision flag
Diffstat (limited to 'node-repository')
24 files changed, 85 insertions, 16 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRetirer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRetirer.java index 880c5da457a..49184dab0af 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRetirer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRetirer.java @@ -104,9 +104,12 @@ public class NodeRetirer extends Maintainer { Flavor flavorWithMinSpareNodes = getMinAmongstKeys(numSpareNodesByFlavor, possibleReplacementFlavors); long spareNodesForMinFlavor = numSpareNodesByFlavor.getOrDefault(flavorWithMinSpareNodes, 0L); if (spareNodesForMinFlavor > 0) { - log.info("Setting node " + retireableNode + " to wantToRetire. Policy: " + + log.info("Setting node " + retireableNode + " to wantToRetire and wantToDeprovision. Policy: " + retirementPolicy.getClass().getSimpleName()); - Node updatedNode = retireableNode.with(retireableNode.status().withWantToRetire(true)); + Node updatedNode = retireableNode + .with(retireableNode.status() + .withWantToRetire(true) + .withWantToDeprovision(true)); nodeRepository().write(updatedNode); numSpareNodesByFlavor.put(flavorWithMinSpareNodes, spareNodesForMinFlavor - 1); numNodesAllowedToRetire--; @@ -156,6 +159,8 @@ public class NodeRetirer extends Maintainer { } /** + * Parks and sets wantToDeprovision for a subset of size 'limit' of nodes + * * @param nodesToPark Nodes that we want to park * @param limit Maximum number of nodes we want to park * @return True iff we were able to park all the nodes @@ -163,7 +168,10 @@ public class NodeRetirer extends Maintainer { boolean limitedPark(Set<Node> nodesToPark, long limit) { nodesToPark.stream() .limit(limit) - .forEach(node -> nodeRepository().park(node.hostname(), Agent.NodeRetirer, "Policy: " + retirementPolicy.getClass().getSimpleName())); + .forEach(node -> { + nodeRepository().write(node.with(node.status().withWantToDeprovision(true))); + nodeRepository().park(node.hostname(), Agent.NodeRetirer, "Policy: " + retirementPolicy.getClass().getSimpleName()); + }); return limit >= nodesToPark.size(); } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Status.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Status.java index 7946b093b10..e8a24b85714 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Status.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Status.java @@ -22,6 +22,7 @@ public class Status { private final int failCount; private final Optional<HardwareFailureType> hardwareFailure; private final boolean wantToRetire; + private final boolean wantToDeprovision; public enum HardwareFailureType { @@ -40,7 +41,8 @@ public class Status { Optional<String> stateVersion, int failCount, Optional<HardwareFailureType> hardwareFailure, - boolean wantToRetire) { + boolean wantToRetire, + boolean wantToDeprovision) { this.reboot = generation; this.vespaVersion = vespaVersion; this.hostedVersion = hostedVersion; @@ -48,28 +50,29 @@ public class Status { this.failCount = failCount; this.hardwareFailure = hardwareFailure; this.wantToRetire = wantToRetire; + this.wantToDeprovision = wantToDeprovision; } /** Returns a copy of this with the reboot generation changed */ - public Status withReboot(Generation reboot) { return new Status(reboot, vespaVersion, hostedVersion, stateVersion, failCount, hardwareFailure, wantToRetire); } + public Status withReboot(Generation reboot) { return new Status(reboot, vespaVersion, hostedVersion, stateVersion, failCount, hardwareFailure, wantToRetire, wantToDeprovision); } /** Returns the reboot generation of this node */ public Generation reboot() { return reboot; } /** Returns a copy of this with the vespa version changed */ - public Status withVespaVersion(Version version) { return new Status(reboot, Optional.of(version), hostedVersion, stateVersion, failCount, hardwareFailure, wantToRetire); } + public Status withVespaVersion(Version version) { return new Status(reboot, Optional.of(version), hostedVersion, stateVersion, failCount, hardwareFailure, wantToRetire, wantToDeprovision); } /** Returns the Vespa version installed on the node, if known */ public Optional<Version> vespaVersion() { return vespaVersion; } /** Returns a copy of this with the hosted version changed */ - public Status withHostedVersion(Version version) { return new Status(reboot, vespaVersion, Optional.of(version), stateVersion, failCount, hardwareFailure, wantToRetire); } + public Status withHostedVersion(Version version) { return new Status(reboot, vespaVersion, Optional.of(version), stateVersion, failCount, hardwareFailure, wantToRetire, wantToDeprovision); } /** Returns the hosted version installed on the node, if known */ public Optional<Version> hostedVersion() { return hostedVersion; } /** Returns a copy of this with the state version changed */ - public Status withStateVersion(String version) { return new Status(reboot, vespaVersion, hostedVersion, Optional.of(version), failCount, hardwareFailure, wantToRetire); } + public Status withStateVersion(String version) { return new Status(reboot, vespaVersion, hostedVersion, Optional.of(version), failCount, hardwareFailure, wantToRetire, wantToDeprovision); } /** * Returns the state version the node last successfully converged with. @@ -85,29 +88,29 @@ public class Status { .filter(image -> !image.isEmpty()) .map(DockerImage::new) .map(DockerImage::tagAsVersion); - return new Status(reboot, vespaVersion, hostedVersion, stateVersion, failCount, hardwareFailure, wantToRetire); + return new Status(reboot, vespaVersion, hostedVersion, stateVersion, failCount, hardwareFailure, wantToRetire, wantToDeprovision); } /** Returns the current docker image the node is running, if known. */ public Optional<String> dockerImage() { return vespaVersion.map(DockerImage.defaultImage::withTag).map(DockerImage::toString); } - public Status withIncreasedFailCount() { return new Status(reboot, vespaVersion, hostedVersion, stateVersion, failCount + 1, hardwareFailure, wantToRetire); } + public Status withIncreasedFailCount() { return new Status(reboot, vespaVersion, hostedVersion, stateVersion, failCount + 1, hardwareFailure, wantToRetire, wantToDeprovision); } - public Status withDecreasedFailCount() { return new Status(reboot, vespaVersion, hostedVersion, stateVersion, failCount - 1, hardwareFailure, wantToRetire); } + public Status withDecreasedFailCount() { return new Status(reboot, vespaVersion, hostedVersion, stateVersion, failCount - 1, hardwareFailure, wantToRetire, wantToDeprovision); } - public Status setFailCount(Integer value) { return new Status(reboot, vespaVersion, hostedVersion, stateVersion, value, hardwareFailure, wantToRetire); } + public Status setFailCount(Integer value) { return new Status(reboot, vespaVersion, hostedVersion, stateVersion, value, hardwareFailure, wantToRetire, wantToDeprovision); } /** Returns how many times this node has been moved to the failed state. */ public int failCount() { return failCount; } - public Status withHardwareFailure(Optional<HardwareFailureType> hardwareFailure) { return new Status(reboot, vespaVersion, hostedVersion, stateVersion, failCount, hardwareFailure, wantToRetire); } + public Status withHardwareFailure(Optional<HardwareFailureType> hardwareFailure) { return new Status(reboot, vespaVersion, hostedVersion, stateVersion, failCount, hardwareFailure, wantToRetire, wantToDeprovision); } /** Returns the type of the last hardware failure detected on this node, or empty if none */ public Optional<HardwareFailureType> hardwareFailure() { return hardwareFailure; } /** Returns a copy of this with the want to retire flag changed */ public Status withWantToRetire(boolean wantToRetire) { - return new Status(reboot, vespaVersion, hostedVersion, stateVersion, failCount, hardwareFailure, wantToRetire); + return new Status(reboot, vespaVersion, hostedVersion, stateVersion, failCount, hardwareFailure, wantToRetire, wantToDeprovision); } /** @@ -118,7 +121,19 @@ public class Status { return wantToRetire; } + /** Returns a copy of this with the want to deprovision flag changed */ + public Status withWantToDeprovision(boolean wantToDeprovision) { + return new Status(reboot, vespaVersion, hostedVersion, stateVersion, failCount, hardwareFailure, wantToRetire, wantToDeprovision); + } + + /** + * Returns whether this node should be deprovisioned when possible. + */ + public boolean wantToDeprovision() { + return wantToDeprovision; + } + /** Returns the initial status of a newly provisioned node */ - public static Status initial() { return new Status(Generation.inital(), Optional.empty(), Optional.empty(), Optional.empty(), 0, Optional.empty(), false); } + public static Status initial() { return new Status(Generation.inital(), Optional.empty(), Optional.empty(), Optional.empty(), 0, Optional.empty(), false, false); } } 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 8612dbd607e..582f97361b2 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 @@ -60,6 +60,7 @@ public class NodeSerializer { private static final String hardwareFailureKey = "hardwareFailure"; private static final String nodeTypeKey = "type"; private static final String wantToRetireKey = "wantToRetire"; + private static final String wantToDeprovisionKey = "wantToDeprovision"; // Configuration fields private static final String flavorKey = "flavor"; @@ -112,6 +113,7 @@ public class NodeSerializer { object.setLong(failCountKey, node.status().failCount()); node.status().hardwareFailure().ifPresent(failure -> object.setString(hardwareFailureKey, toString(failure))); object.setBool(wantToRetireKey, node.status().wantToRetire()); + object.setBool(wantToDeprovisionKey, node.status().wantToDeprovision()); node.allocation().ifPresent(allocation -> toSlime(allocation, object.setObject(instanceKey))); toSlime(node.history(), object.setArray(historyKey)); object.setString(nodeTypeKey, toString(node.type())); @@ -164,13 +166,16 @@ public class NodeSerializer { } private Status statusFromSlime(Inspector object) { + // TODO: Simplify after June 2017 + boolean wantToDeprovision = object.field(wantToDeprovisionKey).valid() && object.field(wantToDeprovisionKey).asBool(); return new Status(generationFromSlime(object, rebootGenerationKey, currentRebootGenerationKey), versionFromSlime(object.field(vespaVersionKey)), versionFromSlime(object.field(hostedVersionKey)), optionalString(object.field(stateVersionKey)), (int)object.field(failCountKey).asLong(), hardwareFailureFromSlime(object.field(hardwareFailureKey)), - object.field(wantToRetireKey).asBool()); + object.field(wantToRetireKey).asBool(), + wantToDeprovision); } private Flavor flavorFromSlime(Inspector object) { 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 fd2bed7374b..b410b0c8ead 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 @@ -87,6 +87,8 @@ public class NodePatcher { return node.withAdditionalIpAddresses(asStringSet(value)); case "wantToRetire" : return node.with(node.status().withWantToRetire(asBoolean(value))); + case "wantToDeprovision" : + return node.with(node.status().withWantToDeprovision(asBoolean(value))); default : throw new IllegalArgumentException("Could not apply field '" + name + "' on a node: No such modifiable field"); } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java index f88f7a663f0..00bec80b758 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java @@ -171,6 +171,7 @@ class NodesResponse extends HttpResponse { object.setBool("hardwareFailure", node.status().hardwareFailure().isPresent()); node.status().hardwareFailure().ifPresent(failure -> object.setString("hardwareFailureType", toString(failure))); object.setBool("wantToRetire", node.status().wantToRetire()); + object.setBool("wantToDeprovision", node.status().wantToDeprovision()); toSlime(node.history(), object.setArray("history")); ipAddressesToSlime(node.ipAddresses(), object.setArray("ipAddresses")); ipAddressesToSlime(node.additionalIpAddresses(), object.setArray("additionalIpAddresses")); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRetirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRetirerTest.java index c466cfca200..16f0acc9d55 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRetirerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRetirerTest.java @@ -73,6 +73,7 @@ public class NodeRetirerTest { .forEach(node -> { Agent parkingAgent = node.history().event(History.Event.Type.parked).orElseThrow(RuntimeException::new).agent(); assertEquals(Agent.NodeRetirer, parkingAgent); + assertTrue("Nodes parked by NodeRetirer should also have wantToDeprovision flag set", node.status().wantToDeprovision()); tester.nodeRepository.write(node.withIpAddresses(Collections.singleton("::2"))); tester.nodeRepository.setDirty(node.hostname()); tester.nodeRepository.setReady(node.hostname()); @@ -143,6 +144,10 @@ public class NodeRetirerTest { // min flavor count for both flavor clusters is now 0, so no further change is expected retireThenAssertSpareAndParkedCounts(new long[]{2, 40, 25, 0, 0, 1}, new long[]{6, 3, 5, 2, 1}); retireThenAssertSpareAndParkedCounts(new long[]{2, 40, 25, 0, 0, 1}, new long[]{6, 3, 5, 2, 1}); + + tester.nodeRepository.getNodes(Node.State.parked) + .forEach(node -> assertTrue("Nodes parked by NodeRetirer should also have wantToDeprovision flag set", + node.status().wantToDeprovision())); } @Test diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/SerializationTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/SerializationTest.java index 2e64b0745c9..d2c3e60b420 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/SerializationTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/SerializationTest.java @@ -325,6 +325,20 @@ public class SerializationTest { } @Test + public void want_to_deprovision_defaults_to_false() { + String nodeData = + "{\n" + + " \"type\" : \"tenant\",\n" + + " \"flavor\" : \"large\",\n" + + " \"openStackId\" : \"myId\",\n" + + " \"hostname\" : \"myHostname\",\n" + + " \"ipAddresses\" : [\"127.0.0.1\"]\n" + + "}"; + Node node = nodeSerializer.fromJson(State.provisioned, Utf8.toBytes(nodeData)); + assertFalse(node.status().wantToDeprovision()); + } + + @Test public void vespa_version_serialization() throws Exception { String nodeWithWantedVespaVersion = "{\n" + diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java index 0285138c9c2..9e46f11b6ab 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java @@ -196,6 +196,9 @@ public class RestApiTest { Utf8.toBytes("{\"wantToRetire\": true}"), Request.Method.PATCH), "{\"message\":\"Updated host4.yahoo.com\"}"); assertResponse(new Request("http://localhost:8080/nodes/v2/node/host4.yahoo.com", + Utf8.toBytes("{\"wantToDeprovision\": true}"), Request.Method.PATCH), + "{\"message\":\"Updated host4.yahoo.com\"}"); + assertResponse(new Request("http://localhost:8080/nodes/v2/node/host4.yahoo.com", Utf8.toBytes("{\"currentDockerImage\": \"ignored-image-name:4443/vespa/ci:6.43.0\"}"), Request.Method.PATCH), "{\"message\":\"Updated host4.yahoo.com\"}"); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node1.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node1.json index e812b057953..3fbe1d900c5 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node1.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node1.json @@ -33,6 +33,7 @@ "failCount": 0, "hardwareFailure" : false, "wantToRetire" : false, + "wantToDeprovision" : false, "history":[{"event":"readied","at":123,"agent":"system"},{"event":"reserved","at":123,"agent":"application"},{"event":"activated","at":123,"agent":"application"}], "ipAddresses":["::1", "127.0.0.1"], "additionalIpAddresses":[] diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node10.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node10.json index a510739a793..f6368c58196 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node10.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node10.json @@ -38,6 +38,7 @@ "failCount": 0, "hardwareFailure" : false, "wantToRetire" : false, + "wantToDeprovision" : false, "history":[{"event":"readied","at":123,"agent":"system"},{"event":"reserved","at":123,"agent":"application"}], "ipAddresses":["::1", "127.0.0.1"], "additionalIpAddresses":[] diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node11.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node11.json index 58bbd6f0128..5ff31ef24ca 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node11.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node11.json @@ -18,6 +18,7 @@ "failCount":0, "hardwareFailure":false, "wantToRetire":false, + "wantToDeprovision" : false, "history":[], "ipAddresses":["::1", "127.0.0.1"], "additionalIpAddresses":[] diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node2.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node2.json index 387464324dd..faaff6337db 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node2.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node2.json @@ -33,6 +33,7 @@ "failCount": 0, "hardwareFailure" : false, "wantToRetire" : false, + "wantToDeprovision" : false, "history":[{"event":"readied","at":123,"agent":"system"},{"event":"reserved","at":123,"agent":"application"},{"event":"activated","at":123,"agent":"application"}], "ipAddresses":["::1", "127.0.0.1"], "additionalIpAddresses":[] diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node3.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node3.json index 65531808404..dd9213b9110 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node3.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node3.json @@ -31,6 +31,7 @@ "failCount": 0, "hardwareFailure" : false, "wantToRetire" : false, + "wantToDeprovision" : false, "history":[{"event":"readied","at":123,"agent":"system"},{"event":"reserved","at":123,"agent":"application"},{"event":"activated","at":123,"agent":"application"}], "ipAddresses":["::1", "127.0.0.1"], "additionalIpAddresses":[] diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json index ff6ae96ab50..cc907a2280c 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json @@ -39,6 +39,7 @@ "hardwareFailure": true, "hardwareFailureType": "memory_mcelog", "wantToRetire" : true, + "wantToDeprovision" : true, "history": [ { "event": "readied", diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4.json index 65f9ae2866b..e416634bbe5 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4.json @@ -36,6 +36,7 @@ "failCount": 0, "hardwareFailure" : false, "wantToRetire" : false, + "wantToDeprovision" : false, "history":[{"event":"readied","at":123,"agent":"system"},{"event":"reserved","at":123,"agent":"application"}], "ipAddresses":["::1", "127.0.0.1"], "additionalIpAddresses":[] diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5-after-changes.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5-after-changes.json index 1cbb6be6213..21f1e28dff0 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5-after-changes.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5-after-changes.json @@ -18,6 +18,7 @@ "failCount": 1, "hardwareFailure": false, "wantToRetire": false, + "wantToDeprovision" : false, "history":[{"event":"readied","at":123,"agent":"system"},{"event":"failed","at":123,"agent":"system"}], "ipAddresses":["::1", "127.0.0.1"], "additionalIpAddresses":[] diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5.json index 495e79787fd..f8e18a08ae6 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5.json @@ -20,6 +20,7 @@ "failCount": 1, "hardwareFailure" : false, "wantToRetire" : false, + "wantToDeprovision" : false, "history":[{"event":"readied","at":123,"agent":"system"},{"event":"failed","at":123,"agent":"system"}], "ipAddresses":["::1", "127.0.0.1"], "additionalIpAddresses":[] diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node55.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node55.json index eb8355626f7..864677137b5 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node55.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node55.json @@ -17,6 +17,7 @@ "failCount": 0, "hardwareFailure" : false, "wantToRetire" : false, + "wantToDeprovision" : false, "history":[{"event":"deallocated","at":123,"agent":"system"}], "ipAddresses":["::1", "127.0.0.1"], "additionalIpAddresses":[] diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6.json index ba9802da05f..6910c132206 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6.json @@ -33,6 +33,7 @@ "failCount": 0, "hardwareFailure" : false, "wantToRetire" : false, + "wantToDeprovision" : false, "history":[{"event":"readied","at":123,"agent":"system"},{"event":"reserved","at":123,"agent":"application"},{"event":"activated","at":123,"agent":"application"}], "ipAddresses":["::1", "127.0.0.1"], "additionalIpAddresses":[] diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node7.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node7.json index 726e5627839..161ae522f64 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node7.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node7.json @@ -17,6 +17,7 @@ "failCount": 0, "hardwareFailure" : false, "wantToRetire" : false, + "wantToDeprovision" : false, "history":[], "ipAddresses":["::1", "127.0.0.1"], "additionalIpAddresses":[] diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node8.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node8.json index ea040be7152..4c00c984881 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node8.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node8.json @@ -17,6 +17,7 @@ "failCount": 0, "hardwareFailure" : false, "wantToRetire" : false, + "wantToDeprovision" : false, "history":[], "ipAddresses":["127.0.0.1"], "additionalIpAddresses":[] diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node9.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node9.json index 0c894a5802d..70c20065194 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node9.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node9.json @@ -17,6 +17,7 @@ "failCount": 0, "hardwareFailure" : false, "wantToRetire" : false, + "wantToDeprovision" : false, "history":[], "ipAddresses":["::1", "127.0.0.1"], "additionalIpAddresses":[] diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent1.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent1.json index d96afb70967..41b807116db 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent1.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent1.json @@ -17,6 +17,7 @@ "failCount": 0, "hardwareFailure": false, "wantToRetire" : false, + "wantToDeprovision" : false, "history": [ { "event": "readied", diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent2.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent2.json index 844364d34c5..92e33ef1f33 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent2.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent2.json @@ -17,6 +17,7 @@ "failCount": 0, "hardwareFailure": false, "wantToRetire" : false, + "wantToDeprovision" : false, "history": [], "ipAddresses":["::1", "127.0.0.1"], "additionalIpAddresses":[] |