diff options
-rw-r--r-- | central/src/main/java/moe/yuuta/dn42peering/admin/nodes/NodeHandler.java | 23 | ||||
-rw-r--r-- | central/src/main/resources/admin/index.ftlh | 3 |
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> |