From edc3ec30b0cfe81d838d39d199dbb4fd3592eb67 Mon Sep 17 00:00:00 2001 From: valerijf Date: Thu, 10 Aug 2017 11:54:02 +0200 Subject: Support for setting hardwareDivergence field in node-repo --- .../hosted/node/admin/nodeagent/NodeAttributes.java | 16 ++++++++++++++-- .../bindings/UpdateNodeAttributesRequestBody.java | 2 ++ .../node/admin/integrationTests/MultiDockerTest.java | 6 +++--- .../hosted/node/admin/integrationTests/RestartTest.java | 2 +- 4 files changed, 20 insertions(+), 6 deletions(-) (limited to 'node-admin') diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAttributes.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAttributes.java index 8ad4a8aa465..2d93dff80a4 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAttributes.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAttributes.java @@ -14,6 +14,7 @@ public class NodeAttributes { private Long rebootGeneration = null; private DockerImage dockerImage = null; private String vespaVersion = null; + private String hardwareDivergence = null; public NodeAttributes() { } @@ -37,6 +38,11 @@ public class NodeAttributes { return this; } + public NodeAttributes withHardwareDivergence(String hardwareDivergence) { + this.hardwareDivergence = hardwareDivergence; + return this; + } + public Long getRestartGeneration() { return restartGeneration; } @@ -53,9 +59,13 @@ public class NodeAttributes { return vespaVersion; } + public String getHardwareDivergence() { + return hardwareDivergence; + } + @Override public int hashCode() { - return Objects.hash(restartGeneration, rebootGeneration, dockerImage, vespaVersion); + return Objects.hash(restartGeneration, rebootGeneration, dockerImage, vespaVersion, hardwareDivergence); } @Override @@ -68,7 +78,8 @@ public class NodeAttributes { return Objects.equals(restartGeneration, other.restartGeneration) && Objects.equals(rebootGeneration, other.rebootGeneration) && Objects.equals(dockerImage, other.dockerImage) - && Objects.equals(vespaVersion, other.vespaVersion); + && Objects.equals(vespaVersion, other.vespaVersion) + && Objects.equals(hardwareDivergence, other.hardwareDivergence); } @Override @@ -78,6 +89,7 @@ public class NodeAttributes { ", rebootGeneration=" + rebootGeneration + ", dockerImage=" + dockerImage.asString() + ", vespaVersion='" + vespaVersion + '\'' + + ", hardwareDivergence='" + hardwareDivergence + '\'' + '}'; } } diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/bindings/UpdateNodeAttributesRequestBody.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/bindings/UpdateNodeAttributesRequestBody.java index 1e2815ccee1..7acd94a2947 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/bindings/UpdateNodeAttributesRequestBody.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/bindings/UpdateNodeAttributesRequestBody.java @@ -21,6 +21,7 @@ public class UpdateNodeAttributesRequestBody { public Long currentRebootGeneration; public String currentDockerImage; public String currentVespaVersion; + public String hardwareDivergence; public UpdateNodeAttributesRequestBody(NodeAttributes nodeAttributes) { if (nodeAttributes.getDockerImage() != null) { @@ -30,5 +31,6 @@ public class UpdateNodeAttributesRequestBody { this.currentRestartGeneration = nodeAttributes.getRestartGeneration(); this.currentVespaVersion = nodeAttributes.getVespaVersion(); this.currentRebootGeneration = nodeAttributes.getRebootGeneration(); + this.hardwareDivergence = nodeAttributes.getHardwareDivergence(); } } diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/MultiDockerTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/MultiDockerTest.java index e700de5eeae..542d01655ef 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/MultiDockerTest.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/MultiDockerTest.java @@ -54,10 +54,10 @@ public class MultiDockerTest { "DeleteContainerStorage with ContainerName { name=host2 }"); dockerTester.callOrderVerifier.assertInOrder( - "updateNodeAttributes with HostName: host1.test.yahoo.com, NodeAttributes{restartGeneration=1, rebootGeneration=0, dockerImage=image1, vespaVersion='1.2.3'}", - "updateNodeAttributes with HostName: host2.test.yahoo.com, NodeAttributes{restartGeneration=1, rebootGeneration=0, dockerImage=image2, vespaVersion='1.2.3'}", + "updateNodeAttributes with HostName: host1.test.yahoo.com, NodeAttributes{restartGeneration=1, rebootGeneration=0, dockerImage=image1, vespaVersion='1.2.3', hardwareDivergence='null'}", + "updateNodeAttributes with HostName: host2.test.yahoo.com, NodeAttributes{restartGeneration=1, rebootGeneration=0, dockerImage=image2, vespaVersion='1.2.3', hardwareDivergence='null'}", "markNodeAvailableForNewAllocation with HostName: host2.test.yahoo.com", - "updateNodeAttributes with HostName: host3.test.yahoo.com, NodeAttributes{restartGeneration=1, rebootGeneration=0, dockerImage=image1, vespaVersion='1.2.3'}"); + "updateNodeAttributes with HostName: host3.test.yahoo.com, NodeAttributes{restartGeneration=1, rebootGeneration=0, dockerImage=image1, vespaVersion='1.2.3', hardwareDivergence='null'}"); } } diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RestartTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RestartTest.java index 00d6b78a12e..de38d7e589d 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RestartTest.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RestartTest.java @@ -32,7 +32,7 @@ public class RestartTest { // Check that the container is started and NodeRepo has received the PATCH update dockerTester.callOrderVerifier.assertInOrder( "createContainerCommand with DockerImage { imageId=image:1.2.3 }, HostName: host1.test.yahoo.com, ContainerName { name=host1 }", - "updateNodeAttributes with HostName: host1.test.yahoo.com, NodeAttributes{restartGeneration=1, rebootGeneration=0, dockerImage=image:1.2.3, vespaVersion='1.2.3'}"); + "updateNodeAttributes with HostName: host1.test.yahoo.com, NodeAttributes{restartGeneration=1, rebootGeneration=0, dockerImage=image:1.2.3, vespaVersion='1.2.3', hardwareDivergence='null'}"); wantedRestartGeneration = 2; currentRestartGeneration = 1; -- cgit v1.2.3