aboutsummaryrefslogtreecommitdiff
path: root/central/src/main/java/moe/yuuta/dn42peering/admin/nodes/NodeHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'central/src/main/java/moe/yuuta/dn42peering/admin/nodes/NodeHandler.java')
-rw-r--r--central/src/main/java/moe/yuuta/dn42peering/admin/nodes/NodeHandler.java23
1 files changed, 23 insertions, 0 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;
}
}