Create replacement tickets for Ridata drives instead of silently skipping

Ridata drives are known unreliable hardware. Instead of skipping them
with no notification, flag as REPLACEMENT_NEEDED and create tickets
recommending replacement.

Resolves #13

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-10 13:01:24 -05:00
parent 90346a2da1
commit 4a186fb6d6

View File

@@ -1831,7 +1831,7 @@ class SystemHealthMonitor:
continue
# Only report issues for drives with valid SMART status
if drive.get('smart_issues') and drive.get('smart_status') in ['HEALTHY', 'UNHEALTHY', 'UNKNOWN']:
if drive.get('smart_issues') and drive.get('smart_status') in ['HEALTHY', 'UNHEALTHY', 'UNKNOWN', 'REPLACEMENT_NEEDED']:
# Filter out generic error messages and manufacturer-specific false positives
filtered_issues = []
for issue in drive['smart_issues']:
@@ -2345,12 +2345,13 @@ class SystemHealthMonitor:
smart_health['issues'].append("Unable to read device information")
return smart_health
# Skip Ridata drives entirely - unreliable and being replaced
# Ridata drives - known unreliable hardware, flag for replacement
manufacturer = self._detect_manufacturer(drive_details.get('model', ''))
if manufacturer == 'Ridata':
smart_health['status'] = 'SKIPPED'
smart_health['issues'].append("Ridata drive - monitoring disabled (unreliable hardware)")
logger.debug(f"Skipping SMART monitoring for Ridata drive {device}")
smart_health['status'] = 'REPLACEMENT_NEEDED'
smart_health['severity'] = 'WARNING'
smart_health['issues'].append("Ridata drive detected - known unreliable hardware, replacement recommended")
logger.info(f"Ridata drive {device} flagged for replacement")
return smart_health
logger.debug(f"Drive details for {device}: {drive_details}")