Fixing tests in review of #1568

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
This commit is contained in:
Jonathon Anderson
2025-01-17 00:58:12 -07:00
parent 847d11611b
commit eff1edd038
27 changed files with 90 additions and 98 deletions

View File

@@ -37,7 +37,7 @@ type TemplateStruct struct {
Tftp warewulfconf.TFTPConf
Paths warewulfconf.BuildConfig
AllNodes []node.Node
Resource map[string]node.RemoteRes
Resources map[string]node.Resource
node.Node
// backward compatiblity
Container string
@@ -47,7 +47,7 @@ type TemplateStruct struct {
/*
Initialize an TemplateStruct with the given node.NodeInfo
*/
func InitStruct(overlayName string, nodeData node.Node, allNodes []node.Node) (TemplateStruct, error) {
func InitStruct(overlayName string, nodeData node.Node, allNodes []node.Node, resources map[string]node.Resource) (TemplateStruct, error) {
var tstruct TemplateStruct
tstruct.Overlay = overlayName
hostname, _ := os.Hostname()
@@ -82,7 +82,7 @@ func InitStruct(overlayName string, nodeData node.Node, allNodes []node.Node) (T
tstruct.BuildTime = dt.Format("01-02-2006 15:04:05 MST")
tstruct.BuildTimeUnix = strconv.FormatInt(dt.Unix(), 10)
// tstruct.Node.Tags = map[string]string{}
tstruct.Resource = nodeDB.Resource
tstruct.Resources = resources
var buf bytes.Buffer
enc := gob.NewEncoder(&buf)
dec := gob.NewDecoder(&buf)

View File

@@ -101,7 +101,7 @@ func (this Overlay) IsDistributionOverlay() bool {
return path.Dir(this.Path()) == config.Get().Paths.DistributionOverlaydir()
}
func BuildAllOverlays(nodes []node.Node, allNodes []node.Node, workerCount int) error {
func BuildAllOverlays(nodes []node.Node, allNodes []node.Node, resources map[string]node.Resource, workerCount int) error {
nodeChan := make(chan node.Node, len(nodes))
errChan := make(chan error, len(nodes)*2)
@@ -109,12 +109,12 @@ func BuildAllOverlays(nodes []node.Node, allNodes []node.Node, workerCount int)
worker := func() {
for n := range nodeChan {
wwlog.Info("Building system overlays for %s: [%s]", n.Id(), strings.Join(n.SystemOverlay, ", "))
if err := BuildOverlay(n, allNodes, "system", n.SystemOverlay); err != nil {
if err := BuildOverlay(n, allNodes, resources, "system", n.SystemOverlay); err != nil {
errChan <- fmt.Errorf("could not build system overlays %v for node %s: %w", n.SystemOverlay, n.Id(), err)
}
wwlog.Info("Building runtime overlays for %s: [%s]", n.Id(), strings.Join(n.RuntimeOverlay, ", "))
if err := BuildOverlay(n, allNodes, "runtime", n.RuntimeOverlay); err != nil {
if err := BuildOverlay(n, allNodes, resources, "runtime", n.RuntimeOverlay); err != nil {
errChan <- fmt.Errorf("could not build runtime overlays %v for node %s: %w", n.RuntimeOverlay, n.Id(), err)
}
}
@@ -139,7 +139,7 @@ func BuildAllOverlays(nodes []node.Node, allNodes []node.Node, workerCount int)
return nil
}
func BuildSpecificOverlays(nodes []node.Node, allNodes []node.Node, overlayNames []string, workerCount int) error {
func BuildSpecificOverlays(nodes []node.Node, allNodes []node.Node, resources map[string]node.Resource, overlayNames []string, workerCount int) error {
nodeChan := make(chan node.Node, len(nodes))
errChan := make(chan error, len(nodes))
@@ -148,7 +148,7 @@ func BuildSpecificOverlays(nodes []node.Node, allNodes []node.Node, overlayNames
for n := range nodeChan {
wwlog.Info("Building overlay for %s: %v", n, overlayNames)
for _, overlayName := range overlayNames {
err := BuildOverlay(n, allNodes, "", []string{overlayName})
err := BuildOverlay(n, allNodes, resources, "", []string{overlayName})
if err != nil {
errChan <- fmt.Errorf("could not build overlay %s for node %s: %w", overlayName, n.Id(), err)
}
@@ -199,7 +199,7 @@ func BuildHostOverlay() error {
if err != nil {
return err
}
return BuildOverlayIndir(hostData, allNodes, []string{"host"}, "/")
return BuildOverlayIndir(hostData, allNodes, registry.Resources, []string{"host"}, "/")
}
/*
@@ -229,7 +229,7 @@ func FindOverlays() (overlayList []string, err error) {
/*
Build the given overlays for a node and create a Image for them
*/
func BuildOverlay(nodeConf node.Node, allNodes []node.Node, context string, overlayNames []string) error {
func BuildOverlay(nodeConf node.Node, allNodes []node.Node, resources map[string]node.Resource, context string, overlayNames []string) error {
if len(overlayNames) == 0 && context == "" {
return nil
}
@@ -254,7 +254,7 @@ func BuildOverlay(nodeConf node.Node, allNodes []node.Node, context string, over
wwlog.Debug("Created temporary directory for %s: %s", name, buildDir)
err = BuildOverlayIndir(nodeConf, allNodes, overlayNames, buildDir)
err = BuildOverlayIndir(nodeConf, allNodes, resources, overlayNames, buildDir)
if err != nil {
return fmt.Errorf("failed to generate files for %s: %w", name, err)
}
@@ -283,7 +283,7 @@ func init() {
}
// Build the given overlays for a node in the given directory.
func BuildOverlayIndir(nodeData node.Node, allNodes []node.Node, overlayNames []string, outputDir string) error {
func BuildOverlayIndir(nodeData node.Node, allNodes []node.Node, resources map[string]node.Resource, overlayNames []string, outputDir string) error {
if len(overlayNames) == 0 {
return nil
}
@@ -332,7 +332,7 @@ func BuildOverlayIndir(nodeData node.Node, allNodes []node.Node, overlayNames []
} else if filepath.Ext(walkPath) == ".ww" {
originalOutputPath := outputPath
outputPath := strings.TrimSuffix(outputPath, ".ww")
tstruct, err := InitStruct(overlayName, nodeData, allNodes)
tstruct, err := InitStruct(overlayName, nodeData, allNodes, resources)
if err != nil {
return fmt.Errorf("failed to initial data for %s: %w", nodeData.Id(), err)
}

View File

@@ -229,7 +229,7 @@ T3
env.MkdirAll(tt.outputDir)
assert.NoError(t, BuildOverlayIndir(tt.node, []node.Node{tt.node}, tt.overlays, env.GetPath(tt.outputDir)))
assert.NoError(t, BuildOverlayIndir(tt.node, []node.Node{tt.node}, nil, tt.overlays, env.GetPath(tt.outputDir)))
dirFiles := tt.outputDirs
for outputFile, _ := range tt.outputFiles {
dirFiles = append(dirFiles, outputFile)
@@ -400,7 +400,7 @@ func Test_BuildOverlay(t *testing.T) {
for _, tt := range tests {
nodeInfo := node.NewNode(tt.nodeName)
t.Run(tt.description, func(t *testing.T) {
err := BuildOverlay(nodeInfo, []node.Node{nodeInfo}, tt.context, tt.overlays)
err := BuildOverlay(nodeInfo, []node.Node{nodeInfo}, nil, tt.context, tt.overlays)
assert.NoError(t, err)
if tt.image != "" {
image := env.GetPath(path.Join("srv/warewulf/overlays", tt.image))
@@ -523,7 +523,7 @@ func Test_BuildAllOverlays(t *testing.T) {
}
nodes = append(nodes, nodeInfo)
}
err := BuildAllOverlays(nodes, nodes, runtime.NumCPU())
err := BuildAllOverlays(nodes, nodes, nil, runtime.NumCPU())
assert.NoError(t, err)
if tt.createdOverlays == nil {
dirName := path.Join(provisionDir, "overlays")
@@ -615,7 +615,7 @@ func Test_BuildSpecificOverlays(t *testing.T) {
nodeInfo := node.NewNode(nodeName)
nodes = append(nodes, nodeInfo)
}
err := BuildSpecificOverlays(nodes, nodes, tt.overlays, runtime.NumCPU())
err := BuildSpecificOverlays(nodes, nodes, nil, tt.overlays, runtime.NumCPU())
if !tt.succeed {
assert.Error(t, err)
} else {