diff --git a/client/fingerprint/cpu.go b/client/fingerprint/cpu.go index 705c9256c..89b62515c 100644 --- a/client/fingerprint/cpu.go +++ b/client/fingerprint/cpu.go @@ -52,7 +52,14 @@ func (f *CPUFingerprint) Fingerprint(cfg *config.Config, node *structs.Node) (bo } if mhz > 0 && numCores > 0 { - node.Attributes["cpu.totalcompute"] = fmt.Sprintf("%.6f", float64(numCores)*mhz) + tc := float64(numCores) * mhz + node.Attributes["cpu.totalcompute"] = fmt.Sprintf("%.6f", tc) + + if node.Resources == nil { + node.Resources = &structs.Resources{} + } + + node.Resources.CPU = tc } if modelName != "" { diff --git a/client/fingerprint/cpu_test.go b/client/fingerprint/cpu_test.go index f65c344dc..f18bbcfb3 100644 --- a/client/fingerprint/cpu_test.go +++ b/client/fingerprint/cpu_test.go @@ -35,4 +35,8 @@ func TestCPUFingerprint(t *testing.T) { t.Fatalf("Missing CPU Total Compute") } + if node.Resources == nil { + t.Fatalf("Expected resources on node, but got nil") + } + }