156 lines
6.8 KiB
Go
156 lines
6.8 KiB
Go
package smartctl
|
|
|
|
type smartctlDeviceJSON struct {
|
|
JSONFormatVersion []int `json:"json_format_version"`
|
|
Smartctl struct {
|
|
Version []int `json:"version"`
|
|
PreRelease bool `json:"pre_release"`
|
|
SvnRevision string `json:"svn_revision"`
|
|
PlatformInfo string `json:"platform_info"`
|
|
BuildInfo string `json:"build_info"`
|
|
Argv []string `json:"argv"`
|
|
Messages []struct {
|
|
Severity string `json:"severity"`
|
|
String string `json:"string"`
|
|
} `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"`
|
|
Vendor string `json:"vendor"`
|
|
Product string `json:"product"`
|
|
ModelFamily string `json:"model_family"`
|
|
ModelName string `json:"model_name"`
|
|
SerialNumber string `json:"serial_number"`
|
|
FirmwareVersion string `json:"firmware_version"`
|
|
SCSIVendor string `json:"scsi_vendor"`
|
|
SCSIModelName string `json:"scsi_model_name"`
|
|
SCSIRevision string `json:"scsi_revision"`
|
|
SCSIVersion string `json:"scsi_version"`
|
|
SCSIProtectionType int `json:"scsi_protection_type"`
|
|
SCSIProtectionIntervalBytesPerLB int `json:"scsi_protection_interval_bytes_per_lb"`
|
|
SCSIGrownDefectList int `json:"scsi_grown_defect_list"`
|
|
LogicalBlockSize int `json:"logical_block_size"`
|
|
RotationRate int `json:"rotation_rate"`
|
|
SCSITransportProtocol struct {
|
|
Name string `json:"name"`
|
|
} `json:"scsi_transport_protocol"`
|
|
SCSIStartStopCycleCounter struct {
|
|
SpecifiedCycleCountOverDeviceLifetime int `json:"specified_cycle_count_over_device_lifetime"`
|
|
AccumulatedStartStopCycles int `json:"accumulated_start_stop_cycles"`
|
|
} `json:"scsi_start_stop_cycle_counter"`
|
|
PowerOnTime struct {
|
|
Hours int `json:"hours"`
|
|
Minutes int `json:"minutes"`
|
|
} `json:"power_on_time"`
|
|
Wwn struct {
|
|
Naa int `json:"naa"`
|
|
Oui int `json:"oui"`
|
|
ID int64 `json:"id"`
|
|
} `json:"wwn"`
|
|
UserCapacity struct {
|
|
Bytes int64 `json:"bytes"`
|
|
} `json:"user_capacity"`
|
|
SmartStatus struct {
|
|
Passed bool `json:"passed"`
|
|
} `json:"smart_status"`
|
|
NvmeSmartHealthInformationLog struct {
|
|
CriticalWarning int64 `json:"critical_warning"`
|
|
Temperature int64 `json:"temperature"`
|
|
AvailableSpare int64 `json:"available_spare"`
|
|
AvailableSpareThreshold int64 `json:"available_spare_threshold"`
|
|
PercentageUsed int64 `json:"percentage_used"`
|
|
DataUnitsRead int64 `json:"data_units_read"`
|
|
DataUnitsWritten int64 `json:"data_units_written"`
|
|
HostReads int64 `json:"host_reads"`
|
|
HostWrites int64 `json:"host_writes"`
|
|
ControllerBusyTime int64 `json:"controller_busy_time"`
|
|
PowerCycles int64 `json:"power_cycles"`
|
|
PowerOnHours int64 `json:"power_on_hours"`
|
|
UnsafeShutdowns int64 `json:"unsafe_shutdowns"`
|
|
MediaErrors int64 `json:"media_errors"`
|
|
NumErrLogEntries int64 `json:"num_err_log_entries"`
|
|
WarningTempTime int64 `json:"warning_temp_time"`
|
|
CriticalCompTime int64 `json:"critical_comp_time"`
|
|
} `json:"nvme_smart_health_information_log"`
|
|
Temperature struct {
|
|
Current int `json:"current"`
|
|
} `json:"temperature"`
|
|
AtaSmartAttributes struct {
|
|
Revision int `json:"revision"`
|
|
Table []struct {
|
|
ID int64 `json:"id"`
|
|
Name string `json:"name"`
|
|
Value int64 `json:"value"`
|
|
Worst int64 `json:"worst"`
|
|
Thresh int64 `json:"thresh"`
|
|
WhenFailed string `json:"when_failed"`
|
|
Flags struct {
|
|
Value int64 `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 int64 `json:"value"`
|
|
String string `json:"string"`
|
|
} `json:"raw"`
|
|
} `json:"table"`
|
|
} `json:"ata_smart_attributes"`
|
|
ScsiErrorCounterLog struct {
|
|
Read struct {
|
|
ErrorsCorrectedByEccfast int `json:"errors_corrected_by_eccfast"`
|
|
ErrorsCorrectedByEccdelayed int `json:"errors_corrected_by_eccdelayed"`
|
|
ErrorsCorrectedByRereadsRewrites int `json:"errors_corrected_by_rereads_rewrites"`
|
|
TotalErrorsCorrected int `json:"total_errors_corrected"`
|
|
CorrectionAlgorithmInvocations int `json:"correction_algorithm_invocations"`
|
|
GigabytesProcessed string `json:"gigabytes_processed"`
|
|
TotalUncorrectedErrors int `json:"total_uncorrected_errors"`
|
|
} `json:"read"`
|
|
Write struct {
|
|
ErrorsCorrectedByEccfast int `json:"errors_corrected_by_eccfast"`
|
|
ErrorsCorrectedByEccdelayed int `json:"errors_corrected_by_eccdelayed"`
|
|
ErrorsCorrectedByRereadsRewrites int `json:"errors_corrected_by_rereads_rewrites"`
|
|
TotalErrorsCorrected int `json:"total_errors_corrected"`
|
|
CorrectionAlgorithmInvocations int `json:"correction_algorithm_invocations"`
|
|
GigabytesProcessed string `json:"gigabytes_processed"`
|
|
TotalUncorrectedErrors int `json:"total_uncorrected_errors"`
|
|
} `json:"write"`
|
|
Verify struct {
|
|
ErrorsCorrectedByEccfast int `json:"errors_corrected_by_eccfast"`
|
|
ErrorsCorrectedByEccdelayed int `json:"errors_corrected_by_eccdelayed"`
|
|
ErrorsCorrectedByRereadsRewrites int `json:"errors_corrected_by_rereads_rewrites"`
|
|
TotalErrorsCorrected int `json:"total_errors_corrected"`
|
|
CorrectionAlgorithmInvocations int `json:"correction_algorithm_invocations"`
|
|
GigabytesProcessed string `json:"gigabytes_processed"`
|
|
TotalUncorrectedErrors int `json:"total_uncorrected_errors"`
|
|
} `json:"verify"`
|
|
} `json:"scsi_error_counter_log"`
|
|
}
|
|
|
|
type smartctlScanJSON struct {
|
|
JSONFormatVersion []int `json:"json_format_version"`
|
|
Smartctl struct {
|
|
Version []int `json:"version"`
|
|
PreRelease bool `json:"pre_release"`
|
|
SvnRevision string `json:"svn_revision"`
|
|
PlatformInfo string `json:"platform_info"`
|
|
BuildInfo string `json:"build_info"`
|
|
Argv []string `json:"argv"`
|
|
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"`
|
|
} `json:"devices"`
|
|
}
|