aboutsummaryrefslogtreecommitdiff
path: root/internal/polling/polling.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/polling/polling.go')
-rw-r--r--internal/polling/polling.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/internal/polling/polling.go b/internal/polling/polling.go
index 853a751..cfd489f 100644
--- a/internal/polling/polling.go
+++ b/internal/polling/polling.go
@@ -34,6 +34,16 @@ import (
type ManualAction int
const (
+ startScript = "#!ipxe\n" +
+ "echo Shoelaces starts polling\n" +
+ "chain --autofree --replace \\\n" +
+ " http://{{.baseURL}}/poll/1/${netX/mac:hexhyp}\n" +
+ "#\n" +
+ "#\n" +
+ "# Do\n" +
+ "# curl http://{{.baseURL}}/poll/1/06-66-de-ad-be-ef\n" +
+ "# to get an idea about what iPXE will receive.\n"
+
maxRetry = 10
retryScript = "#!ipxe\n" +
@@ -226,6 +236,26 @@ func setHostName(params map[string]interface{}, mac string) {
}
}
+func GenStartScript(logger log.Logger, baseURL string) string {
+ variablesMap := map[string]interface{}{}
+ parsedTemplate := &bytes.Buffer{}
+
+ tmpl, err := template.New("retry").Parse(startScript)
+ if err != nil {
+ logger.Info("component", "polling", "msg", "Error parsing start template")
+ panic(err)
+ }
+
+ variablesMap["baseURL"] = baseURL
+ err = tmpl.Execute(parsedTemplate, variablesMap)
+ if err != nil {
+ logger.Info("component", "polling", "msg", "Error executing start template")
+ panic(err)
+ }
+
+ return parsedTemplate.String()
+}
+
func genBootScript(logger log.Logger, templateRenderer *templates.ShoelacesTemplates, baseURL string, script *mappings.Script) string {
script.Params["baseURL"] = utils.BaseURLforEnvName(baseURL, script.Environment)
text, err := templateRenderer.RenderTemplate(logger, script.Name, script.Params, script.Environment)
nihil fit ex nihilo