mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-04-29 10:56:26 +00:00
Update health_monitor.py
This commit is contained in:
@@ -2340,6 +2340,8 @@ class HealthMonitor:
|
|||||||
try:
|
try:
|
||||||
apt_history_path = '/var/log/apt/history.log'
|
apt_history_path = '/var/log/apt/history.log'
|
||||||
last_update_days = None
|
last_update_days = None
|
||||||
|
sec_result = None
|
||||||
|
age_result = None
|
||||||
|
|
||||||
if os.path.exists(apt_history_path):
|
if os.path.exists(apt_history_path):
|
||||||
try:
|
try:
|
||||||
@@ -2422,13 +2424,16 @@ class HealthMonitor:
|
|||||||
# 1+ year without updates - WARNING
|
# 1+ year without updates - WARNING
|
||||||
status = 'WARNING'
|
status = 'WARNING'
|
||||||
reason = f'System not updated in {last_update_days} days (>1 year)'
|
reason = f'System not updated in {last_update_days} days (>1 year)'
|
||||||
health_persistence.record_error(
|
age_result = health_persistence.record_error(
|
||||||
error_key='system_age',
|
error_key='system_age',
|
||||||
category='updates',
|
category='updates',
|
||||||
severity='WARNING',
|
severity='WARNING',
|
||||||
reason=reason,
|
reason=reason,
|
||||||
details={'days': last_update_days, 'update_count': update_count}
|
details={'days': last_update_days, 'update_count': update_count, 'dismissable': True}
|
||||||
)
|
)
|
||||||
|
if age_result and age_result.get('type') == 'skipped_acknowledged':
|
||||||
|
status = 'INFO'
|
||||||
|
reason = None
|
||||||
elif kernel_pve_updates_packages:
|
elif kernel_pve_updates_packages:
|
||||||
# Informational: Kernel or critical PVE components need update
|
# Informational: Kernel or critical PVE components need update
|
||||||
status = 'INFO'
|
status = 'INFO'
|
||||||
@@ -2444,7 +2449,9 @@ class HealthMonitor:
|
|||||||
reason = 'Failed to check for updates (apt-get error)'
|
reason = 'Failed to check for updates (apt-get error)'
|
||||||
|
|
||||||
# Build checks dict for updates sub-items
|
# Build checks dict for updates sub-items
|
||||||
update_age_status = 'CRITICAL' if (last_update_days and last_update_days >= 548) else ('WARNING' if (last_update_days and last_update_days >= 365) else 'OK')
|
age_dismissed = bool(age_result and age_result.get('type') == 'skipped_acknowledged')
|
||||||
|
update_age_status = 'CRITICAL' if (last_update_days and last_update_days >= 548) else (
|
||||||
|
'INFO' if age_dismissed else ('WARNING' if (last_update_days and last_update_days >= 365) else 'OK'))
|
||||||
sec_dismissed = security_updates_packages and sec_result and sec_result.get('type') == 'skipped_acknowledged'
|
sec_dismissed = security_updates_packages and sec_result and sec_result.get('type') == 'skipped_acknowledged'
|
||||||
sec_status = 'INFO' if sec_dismissed else ('WARNING' if security_updates_packages else 'OK')
|
sec_status = 'INFO' if sec_dismissed else ('WARNING' if security_updates_packages else 'OK')
|
||||||
kernel_status = 'INFO' if kernel_pve_updates_packages else 'OK'
|
kernel_status = 'INFO' if kernel_pve_updates_packages else 'OK'
|
||||||
@@ -2461,6 +2468,7 @@ class HealthMonitor:
|
|||||||
'status': update_age_status,
|
'status': update_age_status,
|
||||||
'detail': f'Last updated {last_update_days} day(s) ago' if last_update_days is not None else 'Unknown',
|
'detail': f'Last updated {last_update_days} day(s) ago' if last_update_days is not None else 'Unknown',
|
||||||
'dismissable': False if update_age_status == 'CRITICAL' else True if update_age_status == 'WARNING' else False,
|
'dismissable': False if update_age_status == 'CRITICAL' else True if update_age_status == 'WARNING' else False,
|
||||||
|
'dismissed': bool(age_dismissed),
|
||||||
'error_key': 'system_age'
|
'error_key': 'system_age'
|
||||||
},
|
},
|
||||||
'pending_updates': {
|
'pending_updates': {
|
||||||
|
|||||||
Reference in New Issue
Block a user