package pkg const DeviceProtocolAta = "ATA" const DeviceProtocolScsi = "SCSI" const DeviceProtocolNvme = "NVMe" //go:generate stringer -type=AttributeStatus // AttributeStatus bitwise flag, 1,2,4,8,16,32,etc type AttributeStatus uint8 const ( AttributeStatusPassed AttributeStatus = 0 AttributeStatusFailedSmart AttributeStatus = 1 AttributeStatusWarningScrutiny AttributeStatus = 2 AttributeStatusFailedScrutiny AttributeStatus = 4 ) const AttributeWhenFailedFailingNow = "FAILING_NOW" const AttributeWhenFailedInThePast = "IN_THE_PAST" func AttributeStatusSet(b, flag AttributeStatus) AttributeStatus { return b | flag } func AttributeStatusClear(b, flag AttributeStatus) AttributeStatus { return b &^ flag } func AttributeStatusToggle(b, flag AttributeStatus) AttributeStatus { return b ^ flag } func AttributeStatusHas(b, flag AttributeStatus) bool { return b&flag != 0 } //go:generate stringer -type=DeviceStatus // DeviceStatus bitwise flag, 1,2,4,8,16,32,etc type DeviceStatus uint8 const ( DeviceStatusPassed DeviceStatus = 0 DeviceStatusFailedSmart DeviceStatus = 1 DeviceStatusFailedScrutiny DeviceStatus = 2 ) func DeviceStatusSet(b, flag DeviceStatus) DeviceStatus { return b | flag } func DeviceStatusClear(b, flag DeviceStatus) DeviceStatus { return b &^ flag } func DeviceStatusToggle(b, flag DeviceStatus) DeviceStatus { return b ^ flag } func DeviceStatusHas(b, flag DeviceStatus) bool { return b&flag != 0 } // Metrics Specific Filtering & Threshold Constants type MetricsNotifyLevel int64 const ( MetricsNotifyLevelWarn MetricsNotifyLevel = 1 MetricsNotifyLevelFail MetricsNotifyLevel = 2 ) type MetricsStatusFilterAttributes int64 const ( MetricsStatusFilterAttributesAll MetricsStatusFilterAttributes = 0 MetricsStatusFilterAttributesCritical MetricsStatusFilterAttributes = 1 ) // MetricsStatusThreshold bitwise flag, 1,2,4,8,16,32,etc type MetricsStatusThreshold int64 const ( MetricsStatusThresholdSmart MetricsStatusThreshold = 1 MetricsStatusThresholdScrutiny MetricsStatusThreshold = 2 //shortcut MetricsStatusThresholdBoth MetricsStatusThreshold = 3 )