use wwctl to re-build provision overlays, update to pass overlaynames

This commit is contained in:
Carter Dodd
2022-06-04 11:14:48 -05:00
parent 7caabc439d
commit fc8d3863d8
7 changed files with 83 additions and 68 deletions

View File

@@ -158,9 +158,25 @@ func ProvisionSend(w http.ResponseWriter, req *http.Request) {
for _, overlayname := range stage_overlays {
oneoverlaynewer = oneoverlaynewer || util.PathIsNewer(stage_file, overlay.OverlaySourceDir(overlayname))
}
if !util.IsFile(stage_file) || util.PathIsNewer(stage_file, nodepkg.ConfigFile) || oneoverlaynewer {
wwlog.Serv("BUILD %15s, overlays %v", node.Id.Get(), stage_overlays)
_ = overlay.BuildOverlay(node, stage_overlays)
args := []string{}
for _, overlayname := range stage_overlays {
args = append(args, "-O", overlayname)
}
args = append(args, node.Id.Get())
out, err := util.RunWWCTL("overlay", "build", args...)
if err != nil {
w.WriteHeader(http.StatusInternalServerError)
wwlog.ErrorExc(err, out)
return
}
}
}
}
@@ -219,7 +235,7 @@ func ProvisionSend(w http.ResponseWriter, req *http.Request) {
w.WriteHeader(http.StatusNotFound)
}
err = sendFile(w, stage_file, node.Id.Get())
err = sendFile(w, req, stage_file, node.Id.Get())
if err != nil {
wwlog.ErrorExc(err, "")
return