Documentation ¶
Index ¶
- Constants
- func NewCollector() *collector
- func NewSMARTController(device *manager.DiskIdentify, options ...string) *controller
- func NewSMARTParser(device *manager.DiskIdentify, options ...string) *manager.SmartInfoParser
- func NewSMARTStorage() (*storage.ConfigMap, error)
- func ScanDevice() ([]device, error)
- type Device
- type Result
- type TotalResult
Constants ¶
View Source
const (
DefaultCMName = "hwameistor-smart-result"
)
Variables ¶
This section is empty.
Functions ¶
func NewCollector ¶
func NewCollector() *collector
func NewSMARTController ¶
func NewSMARTController(device *manager.DiskIdentify, options ...string) *controller
NewSMARTController used to get S.M.A.R.T info
func NewSMARTParser ¶
func NewSMARTParser(device *manager.DiskIdentify, options ...string) *manager.SmartInfoParser
NewSMARTParser used to get S.M.A.R.T info
func NewSMARTStorage ¶
Types ¶
type Result ¶
type Result struct { JSONFormatVersion []int `json:"json_format_version"` Smartctl struct { Version []int `json:"version"` SvnRevision string `json:"svn_revision"` PlatformInfo string `json:"platform_info"` BuildInfo string `json:"build_info"` Argv []string `json:"argv"` Messages []struct { String string `json:"string"` Severity string `json:"severity"` } `json:"messages"` ExitStatus int `json:"exit_status"` } `json:"smartctl"` Device struct { Name string `json:"name"` InfoName string `json:"info_name"` Type string `json:"type"` Protocol string `json:"protocol"` } `json:"device"` ModelFamily string `json:"model_family"` ModelName string `json:"model_name"` SerialNumber string `json:"serial_number"` Wwn struct { Naa int `json:"naa"` Oui int `json:"oui"` ID int64 `json:"id"` } `json:"wwn"` FirmwareVersion string `json:"firmware_version"` UserCapacity struct { Blocks int `json:"blocks"` Bytes int64 `json:"bytes"` } `json:"user_capacity"` LogicalBlockSize int `json:"logical_block_size"` PhysicalBlockSize int `json:"physical_block_size"` RotationRate int `json:"rotation_rate"` FormFactor struct { AtaValue int `json:"ata_value"` Name string `json:"name"` } `json:"form_factor"` InSmartctlDatabase bool `json:"in_smartctl_database"` AtaVersion struct { String string `json:"string"` MajorValue int `json:"major_value"` MinorValue int `json:"minor_value"` } `json:"ata_version"` SataVersion struct { String string `json:"string"` Value int `json:"value"` } `json:"sata_version"` InterfaceSpeed struct { Max struct { SataValue int `json:"sata_value"` String string `json:"string"` UnitsPerSecond int `json:"units_per_second"` BitsPerUnit int `json:"bits_per_unit"` } `json:"max"` Current struct { SataValue int `json:"sata_value"` String string `json:"string"` UnitsPerSecond int `json:"units_per_second"` BitsPerUnit int `json:"bits_per_unit"` } `json:"current"` } `json:"interface_speed"` LocalTime struct { TimeT int `json:"time_t"` Asctime string `json:"asctime"` } `json:"local_time"` SmartStatus struct { Passed bool `json:"passed"` } `json:"smart_status"` AtaSmartData struct { OfflineDataCollection struct { Status struct { Value int `json:"value"` String string `json:"string"` } `json:"status"` CompletionSeconds int `json:"completion_seconds"` } `json:"offline_data_collection"` SelfTest struct { Status struct { Value int `json:"value"` String string `json:"string"` Passed bool `json:"passed"` } `json:"status"` PollingMinutes struct { Short int `json:"short"` Extended int `json:"extended"` Conveyance int `json:"conveyance"` } `json:"polling_minutes"` } `json:"self_test"` Capabilities struct { Values []int `json:"values"` ExecOfflineImmediateSupported bool `json:"exec_offline_immediate_supported"` OfflineIsAbortedUponNewCmd bool `json:"offline_is_aborted_upon_new_cmd"` OfflineSurfaceScanSupported bool `json:"offline_surface_scan_supported"` SelfTestsSupported bool `json:"self_tests_supported"` ConveyanceSelfTestSupported bool `json:"conveyance_self_test_supported"` SelectiveSelfTestSupported bool `json:"selective_self_test_supported"` AttributeAutosaveEnabled bool `json:"attribute_autosave_enabled"` ErrorLoggingSupported bool `json:"error_logging_supported"` GpLoggingSupported bool `json:"gp_logging_supported"` } `json:"capabilities"` } `json:"ata_smart_data"` AtaSctCapabilities struct { Value int `json:"value"` ErrorRecoveryControlSupported bool `json:"error_recovery_control_supported"` FeatureControlSupported bool `json:"feature_control_supported"` DataTableSupported bool `json:"data_table_supported"` } `json:"ata_sct_capabilities"` AtaSmartAttributes struct { Revision int `json:"revision"` Table []struct { ID int `json:"id"` Name string `json:"name"` Value int `json:"value"` Worst int `json:"worst"` Thresh int `json:"thresh"` WhenFailed string `json:"when_failed"` Flags struct { Value int `json:"value"` String string `json:"string"` Prefailure bool `json:"prefailure"` UpdatedOnline bool `json:"updated_online"` Performance bool `json:"performance"` ErrorRate bool `json:"error_rate"` EventCount bool `json:"event_count"` AutoKeep bool `json:"auto_keep"` } `json:"flags"` Raw struct { Value int `json:"value"` String string `json:"string"` } `json:"raw"` } `json:"table"` } `json:"ata_smart_attributes"` PowerOnTime struct { Hours int `json:"hours"` } `json:"power_on_time"` PowerCycleCount int `json:"power_cycle_count"` Temperature struct { Current int `json:"current"` } `json:"temperature"` AtaSmartErrorLog struct { Summary struct { Revision int `json:"revision"` Count int `json:"count"` } `json:"summary"` } `json:"ata_smart_error_log"` AtaSmartSelfTestLog struct { Standard struct { Revision int `json:"revision"` Count int `json:"count"` } `json:"standard"` } `json:"ata_smart_self_test_log"` AtaSmartSelectiveSelfTestLog struct { Revision int `json:"revision"` Table []struct { LbaMin int `json:"lba_min"` LbaMax int `json:"lba_max"` Status struct { Value int `json:"value"` String string `json:"string"` } `json:"status"` } `json:"table"` Flags struct { Value int `json:"value"` RemainderScanEnabled bool `json:"remainder_scan_enabled"` } `json:"flags"` PowerUpScanResumeMinutes int `json:"power_up_scan_resume_minutes"` } `json:"ata_smart_selective_self_test_log"` Error string `json:"error"` }
type TotalResult ¶
type TotalResult []Result
func (*TotalResult) Marshal ¶
func (t *TotalResult) Marshal() string
func (*TotalResult) Unmarshal ¶
func (t *TotalResult) Unmarshal(data []byte) error
Click to show internal directories.
Click to hide internal directories.