func MarkUnknownOsFields()

in internal/guestcollector/guestcollector.go [45:77]


func MarkUnknownOsFields(details *[]internal.Details) error {
	if len(*details) != 1 {
		return fmt.Errorf("CheckOSCollectedMetrics details should have only 1 field for OS collection, got %d", len(*details))
	}
	detail := (*details)[0]
	if detail.Name != "OS" {
		return fmt.Errorf("CheckOSCollectedMetrics details.name should be collecting for OS, got %s", detail.Name)
	}
	if len(detail.Fields) > 1 {
		return fmt.Errorf("CheckOSCollectedMetrics details.fields should have 1 field in OS collection, got %d", len(detail.Fields))
	}

	if len(detail.Fields) == 0 {
		fields := map[string]string{
			internal.PowerProfileSettingRule:     "unknown",
			internal.LocalSSDRule:                "unknown",
			internal.DataDiskAllocationUnitsRule: "unknown",
			internal.GCBDRAgentRunning:           "unknown",
		}
		(*details)[0].Fields = append((*details)[0].Fields, fields)
		return nil
	}

	// for os collection, details only has one element and details.Fields only has one element
	// sql collections is different as there can be multiple details and multiple details.Fields
	for _, field := range CollectionOSFields() {
		_, ok := detail.Fields[0][field]
		if !ok {
			(*details)[0].Fields[0][field] = "unknown"
		}
	}
	return nil
}