summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValerij Fredriksen <freva@users.noreply.github.com>2017-08-10 14:11:36 +0200
committerGitHub <noreply@github.com>2017-08-10 14:11:36 +0200
commit3877fbd15fb439ec870a4e9879471f36b2677dee (patch)
treeb087c640164da9f54aa134b8e5f6e61fe06913ae
parent4ab72997cb315f0be8200916abce5c95568634f7 (diff)
parentc503e9660ed14805acf6fbd2bcd8d8b141ef7dd8 (diff)
Merge pull request #3066 from yahoo/freva/maintenance.sh
Freva/maintenance.sh
-rw-r--r--node-admin/scripts/maintenance.sh6
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java8
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAttributes.java16
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/bindings/UpdateNodeAttributesRequestBody.java2
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImplTest.java35
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/MultiDockerTest.java6
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RestartTest.java2
7 files changed, 26 insertions, 49 deletions
diff --git a/node-admin/scripts/maintenance.sh b/node-admin/scripts/maintenance.sh
new file mode 100644
index 00000000000..c8532c6d268
--- /dev/null
+++ b/node-admin/scripts/maintenance.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+java \
+ -cp $VESPA_HOME/lib/jars/node-maintainer-jar-with-dependencies.jar \
+ -Dvespa.log.target=file:$VESPA_HOME/logs/vespa/maintainer.log \
+ "$@"
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java
index 9e6f7a25ed8..615eddac645 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java
@@ -93,14 +93,6 @@ public class DockerOperationsImpl implements DockerOperations {
this.processExecuter = processExecuter;
}
- // Returns empty if vespa version cannot be parsed.
- static Optional<String> parseVespaVersion(final String rawVespaVersion) {
- if (rawVespaVersion == null) return Optional.empty();
-
- final Matcher matcher = VESPA_VERSION_PATTERN.matcher(rawVespaVersion.trim());
- return matcher.find() ? Optional.of(matcher.group(1)) : Optional.empty();
- }
-
@Override
public void startContainer(ContainerName containerName, final ContainerNodeSpec nodeSpec) {
PrefixLogger logger = PrefixLogger.getNodeAgentLogger(DockerOperationsImpl.class, containerName);
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/docker/DockerOperationsImplTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImplTest.java
index 93f045efd9c..c0f123d7044 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImplTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImplTest.java
@@ -68,41 +68,6 @@ public class DockerOperationsImplTest {
}
@Test
- public void vespaVersionIsParsed() {
- assertThat(DockerOperationsImpl.parseVespaVersion("5.119.53"), CoreMatchers.is(Optional.of("5.119.53")));
- }
-
- @Test
- public void vespaVersionIsParsedWithSpacesAndNewlines() {
- assertThat(DockerOperationsImpl.parseVespaVersion("5.119.53\n"), CoreMatchers.is(Optional.of("5.119.53")));
- assertThat(DockerOperationsImpl.parseVespaVersion(" 5.119.53 \n"), CoreMatchers.is(Optional.of("5.119.53")));
- assertThat(DockerOperationsImpl.parseVespaVersion("\n 5.119.53 \n"), CoreMatchers.is(Optional.of("5.119.53")));
- }
-
- @Test
- public void vespaVersionIsParsedWithIrregularVersionScheme() {
- assertThat(DockerOperationsImpl.parseVespaVersion("7.2"), CoreMatchers.is(Optional.of("7.2")));
- assertThat(DockerOperationsImpl.parseVespaVersion("8.0-beta"), CoreMatchers.is(Optional.of("8.0-beta")));
- assertThat(DockerOperationsImpl.parseVespaVersion("foo"), CoreMatchers.is(Optional.of("foo")));
- assertThat(DockerOperationsImpl.parseVespaVersion("119"), CoreMatchers.is(Optional.of("119")));
- }
-
- @Test
- public void vespaVersionIsNotParsedFromNull() {
- assertThat(DockerOperationsImpl.parseVespaVersion(null), CoreMatchers.is(Optional.empty()));
- }
-
- @Test
- public void vespaVersionIsNotParsedFromEmptyString() {
- assertThat(DockerOperationsImpl.parseVespaVersion(""), CoreMatchers.is(Optional.empty()));
- }
-
- @Test
- public void vespaVersionIsNotParsedFromUnexpectedContent() {
- assertThat(DockerOperationsImpl.parseVespaVersion("No such command 'vespanodectl'"), CoreMatchers.is(Optional.empty()));
- }
-
- @Test
public void runsCommandInNetworkNamespace() {
Container container = makeContainer("container-42", Container.State.RUNNING, 42);
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;