aboutsummaryrefslogtreecommitdiff
path: root/internal/handlers
diff options
context:
space:
mode:
authorGeert Stappers <stappers@stappers.it>2023-01-05 00:21:47 +0100
committerGitHub <noreply@github.com>2023-01-04 15:21:47 -0800
commit1c79728984af1b0b065ce5879581f41fa9f03da3 (patch)
tree2a567b5d9542683f450b663d3bef91f218ab35d4 /internal/handlers
parent046315273f2bdc6b268fc1d05704cbdbd42d29fb (diff)
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 <stappers@stappers.it>
Diffstat (limited to 'internal/handlers')
-rw-r--r--internal/handlers/polling.go10
1 files changed, 10 insertions, 0 deletions
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.
nihil fit ex nihilo