From 1c79728984af1b0b065ce5879581f41fa9f03da3 Mon Sep 17 00:00:00 2001 From: Geert Stappers Date: Thu, 5 Jan 2023 00:21:47 +0100 Subject: feat: add human-friendly entry point * Added /start as entry point, for humans and iPXE The '/poll/1/${netX/mac:hexhyp}' is fairly iPXE internal, not something that invites curious people to look better at shoelaces. Neither it is looking nice in DHCP server configuration. This change adds a HTTP handler for '/start'. And '/start' points to '/poll/1/${netX/mac:hexhyp}'. The benefit of it is that human visible documentation can replace the "voodoo" '/poll/1/${netX/mac:hexhyp}' with "friendly" '/start'. Because it is an addition are the existing HTTP handlers not effected, neither the installed deployments effected. Signed-off-by: Geert Stappers --- internal/handlers/polling.go | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'internal/handlers') diff --git a/internal/handlers/polling.go b/internal/handlers/polling.go index 12f36e2..51fd8ad 100644 --- a/internal/handlers/polling.go +++ b/internal/handlers/polling.go @@ -28,6 +28,16 @@ import ( "github.com/thousandeyes/shoelaces/internal/utils" ) +// StartPollingHandler is called by iPXE boot agents. It returns the poll script. +func StartPollingHandler(w http.ResponseWriter, r *http.Request) { + env := envFromRequest(r) + + script := polling.GenStartScript(env.Logger, env.BaseURL) + + w.Write([]byte(script)) +} + + // PollHandler is called by iPXE boot agents. It returns the boot script // specified on the configuration or, if the host is unknown, it makes it // retry for a while until the user specifies alternative IPXE boot script. -- cgit v1.2.3