aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--central/src/main/java/moe/yuuta/dn42peering/admin/nodes/NodeHandler.java23
-rw-r--r--central/src/main/resources/admin/index.ftlh3
2 files changed, 25 insertions, 1 deletions
diff --git a/central/src/main/java/moe/yuuta/dn42peering/admin/nodes/NodeHandler.java b/central/src/main/java/moe/yuuta/dn42peering/admin/nodes/NodeHandler.java
index a9e6f5b..f0375ce 100644
--- a/central/src/main/java/moe/yuuta/dn42peering/admin/nodes/NodeHandler.java
+++ b/central/src/main/java/moe/yuuta/dn42peering/admin/nodes/NodeHandler.java
@@ -257,6 +257,29 @@ public class NodeHandler implements ISubRouter {
});
});
+ router.get("/redeploy")
+ .handler(ValidationHandler
+ .builder(parser)
+ .queryParameter(param("id", stringSchema()))
+ .build())
+ .handler(ctx -> {
+ final String id = ctx.<RequestParameters>get(ValidationHandler.REQUEST_CONTEXT_KEY)
+ .queryParameter("id").getString();
+ int intId;
+ try {
+ intId = Integer.parseInt(id);
+ } catch (NumberFormatException ignored) {
+ ctx.response().setStatusCode(400).end();
+ return;
+ }
+ provisionRemoteService.deploy(intId, ar -> {
+ ctx.response()
+ .setStatusCode(303)
+ .putHeader("Location", "/admin")
+ .end();
+ });
+ });
+
return router;
}
}
diff --git a/central/src/main/resources/admin/index.ftlh b/central/src/main/resources/admin/index.ftlh
index 3316622..d3e3fd3 100644
--- a/central/src/main/resources/admin/index.ftlh
+++ b/central/src/main/resources/admin/index.ftlh
@@ -37,7 +37,8 @@
${method}<br />
</#list>
</td>
- <td><a href="/admin/nodes/edit?id=${node.id}">Edit</a></td>
+ <td><a href="/admin/nodes/edit?id=${node.id}">Edit</a><br />
+ <a href="/admin/nodes/redeploy?id=${node.id}">Redeploy</a></td>
</tr>
</#list>
</table>