123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- package smart
- // DevicesList was used for storing the disk scanning result
- type DevicesList 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"`
- */
- Devices []struct {
- Name string `json:"name"`
- InfoName string `json:"info_name"`
- Type string `json:"type"`
- Protocol string `json:"protocol"`
- Smart DeviceSMART `json:"smart"`
- } `json:"devices"`
- Healthy string `json:"healthy"`
- }
- // DeviceSMART was used for storing each disk smart information
- type DeviceSMART 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"`
- 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"`
- Healthy string `json:"healthy"`
- 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"`
- Minutes int `json:"minutes"`
- } `json:"power_on_time"`
- PowerCycleCount int `json:"power_cycle_count"`
- Temperature struct {
- Current int `json:"current"`
- } `json:"temperature"`
- /*
- AtaSmartSelfTestLog struct {
- Standard struct {
- Revision int `json:"revision"`
- Table []struct {
- Type struct {
- Value int `json:"value"`
- String string `json:"string"`
- } `json:"type"`
- Status struct {
- Value int `json:"value"`
- String string `json:"string"`
- Passed bool `json:"passed"`
- } `json:"status,omitempty"`
- LifetimeHours int `json:"lifetime_hours"`
- } `json:"table"`
- Count int `json:"count"`
- ErrorCountTotal int `json:"error_count_total"`
- ErrorCountOutdated int `json:"error_count_outdated"`
- } `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"`
- */
- Healthy string `json:"healthy"`
- }
|