Private
Public Access
1
0

Add GET /api/v1/system/services/{name} endpoint for service health checks

- Add ServiceStatus struct with name, display_name, active_state, sub_state,
  load_state, enabled_state, main_pid, healthy fields
- Add get_service_status() to PackageManagerBackend trait
- Implement get_service_status() in AptBackend with systemd and OpenRC support
- Add get_service_status HTTP handler in system.rs
- Add /system/services/{name} route
- Add E2E test for service status endpoint
- Bump version to 0.3.6
This commit is contained in:
2026-05-04 23:44:26 +00:00
parent 385c675736
commit 165db77a14
8 changed files with 298 additions and 35 deletions

View File

@ -8,7 +8,7 @@ use chrono::{DateTime, Utc};
use std::collections::HashMap;
use std::sync::Arc;
use std::time::Duration;
use tokio::sync::{RwLock, broadcast};
use tokio::sync::{broadcast, RwLock};
use uuid::Uuid;
/// Job status
@ -271,11 +271,7 @@ impl JobManager {
if let Some(job) = jobs.get_mut(job_id) {
job.complete();
event_data = Some((
job.status.clone(),
job.progress,
job.message.clone(),
));
event_data = Some((job.status.clone(), job.progress, job.message.clone()));
} else {
event_data = None;
}
@ -296,11 +292,7 @@ impl JobManager {
if let Some(job) = jobs.get_mut(job_id) {
job.fail(error);
event_data = Some((
job.status.clone(),
job.progress,
job.message.clone(),
));
event_data = Some((job.status.clone(), job.progress, job.message.clone()));
} else {
event_data = None;
}