add hash function

Signed-off-by: Christian Goll <cgoll@suse.de>
This commit is contained in:
Christian Goll
2023-02-27 17:58:30 +01:00
parent 4582a1f59e
commit ee4f9d53d6
2 changed files with 137 additions and 0 deletions

26
internal/pkg/node/hash.go Normal file
View File

@@ -0,0 +1,26 @@
package node
import (
"crypto/sha256"
"github.com/hpcng/warewulf/internal/pkg/wwlog"
"gopkg.in/yaml.v2"
)
/*
Calculate the hash of NodeYaml in an orderder fashion
*/
func (config *NodeYaml) Hash() [32]byte {
// flatten out profiles and nodes
for _, val := range config.NodeProfiles {
val.Flatten()
}
for _, val := range config.Nodes {
val.Flatten()
}
data, err := yaml.Marshal(config)
if err != nil {
wwlog.Warn("couldn't marshall NodeYaml for hashing")
}
return sha256.Sum256(data)
}