Sync hardware ingest contract v2.7
This commit is contained in:
@@ -1,9 +1,6 @@
|
||||
package collector
|
||||
|
||||
import (
|
||||
"bee/audit/internal/schema"
|
||||
"fmt"
|
||||
)
|
||||
import "bee/audit/internal/schema"
|
||||
|
||||
func finalizeSnapshot(snap *schema.HardwareSnapshot, collectedAt string) {
|
||||
snap.Memory = filterMemory(snap.Memory)
|
||||
@@ -11,7 +8,6 @@ func finalizeSnapshot(snap *schema.HardwareSnapshot, collectedAt string) {
|
||||
snap.PowerSupplies = filterPSUs(snap.PowerSupplies)
|
||||
|
||||
setComponentStatusMetadata(snap, collectedAt)
|
||||
deduplicateComponentSerials(snap)
|
||||
}
|
||||
|
||||
func filterMemory(dimms []schema.HardwareMemory) []schema.HardwareMemory {
|
||||
@@ -79,101 +75,3 @@ func setStatusCheckedAt(status *schema.HardwareComponentStatus, collectedAt stri
|
||||
status.StatusCheckedAt = &collectedAt
|
||||
}
|
||||
}
|
||||
|
||||
func deduplicateComponentSerials(snap *schema.HardwareSnapshot) {
|
||||
deduplicateCPUSerials(snap.CPUs)
|
||||
deduplicateMemorySerials(snap.Memory)
|
||||
deduplicateStorageSerials(snap.Storage)
|
||||
deduplicatePCIeSerials(snap.PCIeDevices)
|
||||
deduplicatePSUSerials(snap.PowerSupplies)
|
||||
}
|
||||
|
||||
func deduplicateCPUSerials(items []schema.HardwareCPU) {
|
||||
seen := map[string]int{}
|
||||
seq := 1
|
||||
for i := range items {
|
||||
if items[i].SerialNumber == nil || *items[i].SerialNumber == "" {
|
||||
continue
|
||||
}
|
||||
model := derefString(items[i].Model)
|
||||
key := model + "\x00" + *items[i].SerialNumber
|
||||
seen[key]++
|
||||
if seen[key] > 1 {
|
||||
repl := fmt.Sprintf("NO_SN-%08d", seq)
|
||||
seq++
|
||||
items[i].SerialNumber = &repl
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func deduplicateMemorySerials(items []schema.HardwareMemory) {
|
||||
seen := map[string]int{}
|
||||
seq := 1
|
||||
for i := range items {
|
||||
if items[i].SerialNumber == nil || *items[i].SerialNumber == "" {
|
||||
continue
|
||||
}
|
||||
model := derefString(items[i].PartNumber)
|
||||
key := model + "\x00" + *items[i].SerialNumber
|
||||
seen[key]++
|
||||
if seen[key] > 1 {
|
||||
repl := fmt.Sprintf("NO_SN-%08d", seq)
|
||||
seq++
|
||||
items[i].SerialNumber = &repl
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func deduplicateStorageSerials(items []schema.HardwareStorage) {
|
||||
seen := map[string]int{}
|
||||
seq := 1
|
||||
for i := range items {
|
||||
if items[i].SerialNumber == nil || *items[i].SerialNumber == "" {
|
||||
continue
|
||||
}
|
||||
model := derefString(items[i].Model)
|
||||
key := model + "\x00" + *items[i].SerialNumber
|
||||
seen[key]++
|
||||
if seen[key] > 1 {
|
||||
repl := fmt.Sprintf("NO_SN-%08d", seq)
|
||||
seq++
|
||||
items[i].SerialNumber = &repl
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func deduplicatePCIeSerials(items []schema.HardwarePCIeDevice) {
|
||||
seen := map[string]int{}
|
||||
seq := 1
|
||||
for i := range items {
|
||||
if items[i].SerialNumber == nil || *items[i].SerialNumber == "" {
|
||||
continue
|
||||
}
|
||||
model := derefString(items[i].Model)
|
||||
key := model + "\x00" + *items[i].SerialNumber
|
||||
seen[key]++
|
||||
if seen[key] > 1 {
|
||||
repl := fmt.Sprintf("NO_SN-%08d", seq)
|
||||
seq++
|
||||
items[i].SerialNumber = &repl
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func deduplicatePSUSerials(items []schema.HardwarePowerSupply) {
|
||||
seen := map[string]int{}
|
||||
seq := 1
|
||||
for i := range items {
|
||||
if items[i].SerialNumber == nil || *items[i].SerialNumber == "" {
|
||||
continue
|
||||
}
|
||||
model := derefString(items[i].Model)
|
||||
key := model + "\x00" + *items[i].SerialNumber
|
||||
seen[key]++
|
||||
if seen[key] > 1 {
|
||||
repl := fmt.Sprintf("NO_SN-%08d", seq)
|
||||
seq++
|
||||
items[i].SerialNumber = &repl
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user