From b80d41975a7a1bed841b374e746521209c63cd1e Mon Sep 17 00:00:00 2001 From: Gregory Kurtzer Date: Wed, 9 Feb 2022 20:11:25 +0000 Subject: [PATCH] Update status before sending data to iPXE/node --- internal/pkg/warewulfd/container.go | 4 ++-- internal/pkg/warewulfd/kernel.go | 4 ++-- internal/pkg/warewulfd/kmods.go | 4 ++-- internal/pkg/warewulfd/runtime.go | 4 ++-- internal/pkg/warewulfd/system.go | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/internal/pkg/warewulfd/container.go b/internal/pkg/warewulfd/container.go index 7e1e6dd5..32dc942e 100644 --- a/internal/pkg/warewulfd/container.go +++ b/internal/pkg/warewulfd/container.go @@ -31,14 +31,14 @@ func ContainerSend(w http.ResponseWriter, req *http.Request) { if node.ContainerName.Defined() { containerImage := container.ImageFile(node.ContainerName.Get()) + updateStatus(node.Id.Get(), "CONTAINER", node.ContainerName.Get()+".img", strings.Split(req.RemoteAddr, ":")[0]) + err = sendFile(w, containerImage, node.Id.Get()) if err != nil { daemonLogf("ERROR: %s\n", err) w.WriteHeader(503) } - updateStatus(node.Id.Get(), "CONTAINER", node.ContainerName.Get()+".img", strings.Split(req.RemoteAddr, ":")[0]) - } else { w.WriteHeader(503) daemonLogf("WARNING: No Container set for node %s\n", node.Id.Get()) diff --git a/internal/pkg/warewulfd/kernel.go b/internal/pkg/warewulfd/kernel.go index 3e5837e3..22958f5f 100644 --- a/internal/pkg/warewulfd/kernel.go +++ b/internal/pkg/warewulfd/kernel.go @@ -31,13 +31,13 @@ func KernelSend(w http.ResponseWriter, req *http.Request) { if node.KernelVersion.Defined() { fileName := kernel.KernelImage(node.KernelVersion.Get()) + updateStatus(node.Id.Get(), "KERNEL", node.KernelVersion.Get(), strings.Split(req.RemoteAddr, ":")[0]) + err := sendFile(w, fileName, node.Id.Get()) if err != nil { daemonLogf("ERROR: %s\n", err) } - updateStatus(node.Id.Get(), "KERNEL", node.KernelVersion.Get(), strings.Split(req.RemoteAddr, ":")[0]) - } else { w.WriteHeader(503) daemonLogf("WARNING: No 'kernel version' set for node %s\n", node.Id.Get()) diff --git a/internal/pkg/warewulfd/kmods.go b/internal/pkg/warewulfd/kmods.go index aee88f24..13ace42b 100644 --- a/internal/pkg/warewulfd/kmods.go +++ b/internal/pkg/warewulfd/kmods.go @@ -31,13 +31,13 @@ func KmodsSend(w http.ResponseWriter, req *http.Request) { if node.KernelVersion.Defined() { fileName := kernel.KmodsImage(node.KernelVersion.Get()) + updateStatus(node.Id.Get(), "KMODS_OVERLAY", node.KernelVersion.Get()+".img", strings.Split(req.RemoteAddr, ":")[0]) + err := sendFile(w, fileName, node.Id.Get()) if err != nil { daemonLogf("ERROR: %s\n", err) } - updateStatus(node.Id.Get(), "KMODS_OVERLAY", node.KernelVersion.Get()+".img", strings.Split(req.RemoteAddr, ":")[0]) - } else { w.WriteHeader(503) daemonLogf("WARNING: No 'kernel version' set for node %s\n", node.Id.Get()) diff --git a/internal/pkg/warewulfd/runtime.go b/internal/pkg/warewulfd/runtime.go index a8b1d170..69d5e4c0 100644 --- a/internal/pkg/warewulfd/runtime.go +++ b/internal/pkg/warewulfd/runtime.go @@ -49,6 +49,8 @@ func RuntimeOverlaySend(w http.ResponseWriter, req *http.Request) { if node.RuntimeOverlay.Defined() { fileName := overlay.OverlayImage(node.Id.Get(), node.RuntimeOverlay.Get()) + updateStatus(node.Id.Get(), "RUNTIME_OVERLAY", node.RuntimeOverlay.Get()+".img", strings.Split(req.RemoteAddr, ":")[0]) + if conf.Warewulf.AutobuildOverlays { if !util.IsFile(fileName) || util.PathIsNewer(fileName, nodepkg.ConfigFile) || util.PathIsNewer(fileName, overlay.OverlaySourceDir(node.RuntimeOverlay.Get())) { daemonLogf("BUILD: %15s: Runtime Overlay\n", node.Id.Get()) @@ -61,8 +63,6 @@ func RuntimeOverlaySend(w http.ResponseWriter, req *http.Request) { daemonLogf("ERROR: %s\n", err) } - updateStatus(node.Id.Get(), "RUNTIME_OVERLAY", node.RuntimeOverlay.Get()+".img", strings.Split(req.RemoteAddr, ":")[0]) - } else { w.WriteHeader(503) daemonLogf("WARNING: No 'runtime overlay' set for node %s\n", node.Id.Get()) diff --git a/internal/pkg/warewulfd/system.go b/internal/pkg/warewulfd/system.go index c30ed353..68078c75 100644 --- a/internal/pkg/warewulfd/system.go +++ b/internal/pkg/warewulfd/system.go @@ -41,6 +41,8 @@ func SystemOverlaySend(w http.ResponseWriter, req *http.Request) { if node.SystemOverlay.Defined() { fileName := overlay.OverlayImage(node.Id.Get(), node.SystemOverlay.Get()) + updateStatus(node.Id.Get(), "SYSTEM_OVERLAY", node.SystemOverlay.Get()+".img", strings.Split(req.RemoteAddr, ":")[0]) + if conf.Warewulf.AutobuildOverlays { if !util.IsFile(fileName) || util.PathIsNewer(fileName, nodepkg.ConfigFile) || util.PathIsNewer(fileName, overlay.OverlaySourceDir(node.SystemOverlay.Get())) { daemonLogf("BUILD: %15s: System Overlay\n", node.Id.Get()) @@ -53,8 +55,6 @@ func SystemOverlaySend(w http.ResponseWriter, req *http.Request) { daemonLogf("ERROR: %s\n", err) } - updateStatus(node.Id.Get(), "SYSTEM_OVERLAY", node.SystemOverlay.Get()+".img", strings.Split(req.RemoteAddr, ":")[0]) - } else { w.WriteHeader(503) daemonLogf("WARNING: No 'system system-overlay' set for node %s\n", node.Id.Get())