Skip to content

Commit 084d910

Browse files
committed
refactor(jans-cedarling): inline health status
Signed-off-by: dagregi <dagmawi.m@proton.me>
1 parent 7729fd0 commit 084d910

2 files changed

Lines changed: 11 additions & 3 deletions

File tree

jans-cedarling/cedarling/src/lock/health_ticker.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ use super::transport::{AuditItem, AuditKind, AuditPayload, AuditTransport};
1717
use crate::app_types::{ApplicationName, PdpID};
1818
use crate::http::{JoinHandle, spawn_task};
1919
use crate::lock::LockLogEntry;
20+
use crate::lock::health_registry::{HealthStatus, SystemHealth};
2021
use crate::log::{LogWriter, LoggerWeak};
2122

2223
pub(super) struct HealthTickerParams {
@@ -100,7 +101,13 @@ impl<T: AuditTransport + 'static> HealthTicker<T> {
100101
let now = Utc::now().to_rfc3339();
101102
let engine_status = self.registry.collect();
102103

103-
let overall_status = self.registry.compute_status();
104+
let overall_status = if engine_status.is_empty() {
105+
SystemHealth::Unknown
106+
} else if engine_status.values().all(|s| *s == HealthStatus::Success) {
107+
SystemHealth::Running
108+
} else {
109+
SystemHealth::Degraded
110+
};
104111

105112
LockServerHealthEntry {
106113
creation_date: now.clone(),

jans-cedarling/cedarling/src/lock/transport/mapping.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use std::collections::HashMap;
88
use serde::{Deserialize, Serialize};
99
use serde_json::Value;
1010

11-
use crate::lock::health_registry::HealthStatus;
11+
use crate::lock::health_registry::{HealthStatus, SystemHealth};
1212
use crate::lock::transport::{AuditItem, AuditPayload, TransportError};
1313
use crate::log::DecisionLogEntry;
1414

@@ -173,7 +173,8 @@ impl TryFrom<&AuditItem> for LockServerMetricsEntry {
173173
node_name: item.pdp_id.to_string(),
174174
status: item
175175
.status
176-
.map_or_else(|| "unknown".to_string(), |s| s.to_string()),
176+
.map_or("unknown", SystemHealth::as_str)
177+
.to_string(),
177178
interval_secs: entry.interval_secs,
178179
policy_stats: entry.policy_stats.clone(),
179180
error_counters: entry.error_counters.clone(),

0 commit comments

Comments
 (0)