summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorvalerijf <valerijf@yahoo-inc.com>2017-04-05 13:50:03 +0200
committervalerijf <valerijf@yahoo-inc.com>2017-04-05 13:50:03 +0200
commit219924c1f3dc0def6698398c7d58a833f09aeb12 (patch)
treedf76a6ec2c075deac27782d4012abce697a62989 /node-admin
parentd3a34a72126fcb22c8474986d196edff94646f4c (diff)
Resume node-admin on /rest/resume
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java4
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RunInContainerTest.java1
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdaterTest.java8
3 files changed, 10 insertions, 3 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java
index 26139575f92..7287c374723 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java
@@ -144,6 +144,10 @@ public class NodeAdminStateUpdater extends AbstractComponent {
// To get to resumed state, we only need to converge NodeAdmins frozen state
if (wantedState == RESUMED) {
+ if (!orchestrator.resume(dockerHostHostName)) {
+ throw new RuntimeException("Failed to resume node-admin");
+ }
+
synchronized (monitor) {
currentState = RESUMED;
}
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RunInContainerTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RunInContainerTest.java
index b154663092e..09a749709f4 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RunInContainerTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RunInContainerTest.java
@@ -132,6 +132,7 @@ public class RunInContainerTest {
assertTrue(doPutCall("suspend"));
// Back to resume
+ when(ComponentsProviderWithMocks.orchestratorMock.resume(parentHostname)).thenReturn(true);
assertFalse(doPutCall("resume"));
Thread.sleep(50);
assertTrue(doPutCall("resume"));
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdaterTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdaterTest.java
index 28da1192b3b..974f450ddc0 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdaterTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdaterTest.java
@@ -70,6 +70,7 @@ public class NodeAdminStateUpdaterTest {
tickAfter(35);
assertTrue(refresher.setResumeStateAndCheckIfResumed(NodeAdminStateUpdater.State.RESUMED));
verify(refresher, never()).signalWorkToBeDone(); // No attempt in changing state
+ verify(orchestrator, never()).resume(parentHostname); // Already resumed
// Lets try to suspend node admin only, immediately we get false back, and need to wait until next
// tick before any change can happen
@@ -117,13 +118,14 @@ public class NodeAdminStateUpdaterTest {
// Lets try going back to resumed
- when(nodeAdmin.setFrozen(eq(false))).thenReturn(false); // NodeAgents not converged to yet
+ when(nodeAdmin.setFrozen(eq(false))).thenReturn(false).thenReturn(true); // NodeAgents not converged to yet
assertFalse(refresher.setResumeStateAndCheckIfResumed(NodeAdminStateUpdater.State.RESUMED));
tickAfter(35);
assertFalse(refresher.setResumeStateAndCheckIfResumed(NodeAdminStateUpdater.State.RESUMED));
- when(nodeAdmin.setFrozen(eq(false))).thenReturn(true);
- assertFalse(refresher.setResumeStateAndCheckIfResumed(NodeAdminStateUpdater.State.RESUMED)); // Still false before tick
+ when(orchestrator.resume(parentHostname)).thenReturn(false).thenReturn(true);
+ tickAfter(35);
+ assertFalse(refresher.setResumeStateAndCheckIfResumed(NodeAdminStateUpdater.State.RESUMED));
tickAfter(35);
assertTrue(refresher.setResumeStateAndCheckIfResumed(NodeAdminStateUpdater.State.RESUMED));
}