First pass at a rework of the overlay subsystem in Warewulf

This commit is contained in:
Gregory Kurtzer
2021-12-29 16:11:25 -08:00
parent 02a5de3873
commit 00d8d42e9d
62 changed files with 405 additions and 628 deletions

View File

@@ -83,8 +83,7 @@ func IpxeSend(w http.ResponseWriter, req *http.Request) {
unconfiguredNode = true
} else {
nodeobj = n
_ = overlay.BuildSystemOverlay([]node.NodeInfo{n})
_ = overlay.BuildRuntimeOverlay([]node.NodeInfo{n})
_ = overlay.BuildAllOverlays([]node.NodeInfo{n})
daemonLogf("IPXEREQ: %s (node automatically configured)\n", hwaddr)

View File

@@ -5,7 +5,6 @@ import (
"strconv"
"strings"
"github.com/hpcng/warewulf/internal/pkg/config"
"github.com/hpcng/warewulf/internal/pkg/node"
"github.com/hpcng/warewulf/internal/pkg/overlay"
"github.com/hpcng/warewulf/internal/pkg/util"
@@ -64,12 +63,12 @@ func RuntimeOverlaySend(w http.ResponseWriter, req *http.Request) {
}
if n.RuntimeOverlay.Defined() {
fileName := config.RuntimeOverlayImage(n.Id.Get())
fileName := overlay.OverlayImage(n.Id.Get(), n.RuntimeOverlay.Get())
if conf.Warewulf.AutobuildOverlays {
if !util.IsFile(fileName) || util.PathIsNewer(fileName, node.ConfigFile) || util.PathIsNewer(fileName, config.RuntimeOverlaySource(n.RuntimeOverlay.Get())) {
if !util.IsFile(fileName) || util.PathIsNewer(fileName, node.ConfigFile) || util.PathIsNewer(fileName, overlay.OverlaySourceDir(n.RuntimeOverlay.Get())) {
daemonLogf("BUILD: %15s: Runtime Overlay\n", n.Id.Get())
_ = overlay.BuildRuntimeOverlay([]node.NodeInfo{n})
_ = overlay.BuildOverlay(n, n.RuntimeOverlay.Get())
}
}

View File

@@ -3,7 +3,6 @@ package warewulfd
import (
"net/http"
"github.com/hpcng/warewulf/internal/pkg/config"
"github.com/hpcng/warewulf/internal/pkg/node"
"github.com/hpcng/warewulf/internal/pkg/overlay"
"github.com/hpcng/warewulf/internal/pkg/util"
@@ -26,12 +25,12 @@ func SystemOverlaySend(w http.ResponseWriter, req *http.Request) {
}
if n.SystemOverlay.Defined() {
fileName := config.SystemOverlayImage(n.Id.Get())
fileName := overlay.OverlayImage(n.Id.Get(), n.SystemOverlay.Get())
if conf.Warewulf.AutobuildOverlays {
if !util.IsFile(fileName) || util.PathIsNewer(fileName, node.ConfigFile) || util.PathIsNewer(fileName, config.SystemOverlaySource(n.SystemOverlay.Get())) {
if !util.IsFile(fileName) || util.PathIsNewer(fileName, node.ConfigFile) || util.PathIsNewer(fileName, overlay.OverlaySourceDir(n.SystemOverlay.Get())) {
daemonLogf("BUILD: %15s: System Overlay\n", n.Id.Get())
_ = overlay.BuildSystemOverlay([]node.NodeInfo{n})
_ = overlay.BuildOverlay(n, n.SystemOverlay.Get())
}
}