summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@yahooinc.com>2022-12-06 15:11:20 +0100
committerHåkon Hallingstad <hakon@yahooinc.com>2022-12-06 15:11:20 +0100
commit178e42a8fd77f46ee8eb0c198c11c19d67e429a4 (patch)
tree08714faf0900cab7f343931244fe11e8f4845213
parente728d23b0bf7f2df2106ab51adf4f1ee4133b233 (diff)
Reboot in real node repo
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeRepository.java4
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java8
2 files changed, 12 insertions, 0 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeRepository.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeRepository.java
index c45d53ae97b..c4c9dd3f591 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeRepository.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeRepository.java
@@ -25,4 +25,8 @@ public interface NodeRepository {
void updateNodeAttributes(String hostName, NodeAttributes nodeAttributes);
void setNodeState(String hostName, NodeState nodeState);
+
+ default void reboot(String hostname) {
+ throw new UnsupportedOperationException("Rebooting not supported in " + getClass().getName());
+ }
}
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java
index 793bae9e2ab..36a4703a415 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java
@@ -133,6 +133,14 @@ public class RealNodeRepository implements NodeRepository {
response.throwOnError("Failed to set node state");
}
+ @Override
+ public void reboot(String hostname) {
+ String uri = "/nodes/v2/command/reboot?hostname=" + hostname;
+ StandardConfigServerResponse response = configServerApi.post(uri, Optional.empty(), StandardConfigServerResponse.class);
+ logger.info(response.message);
+ response.throwOnError("Failed to reboot " + hostname);
+ }
+
private static NodeSpec createNodeSpec(NodeRepositoryNode node) {
Objects.requireNonNull(node.type, "Unknown node type");
NodeType nodeType = NodeType.valueOf(node.type);