mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-31 04:23:40 +00:00
Remove time from Health Check Result (#549)
* change health check result to remove time * rename health check result * Update appmgr/src/dependencies.rs Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
This commit is contained in:
@@ -12,7 +12,7 @@ use crate::config::Config;
|
|||||||
use crate::context::RpcContext;
|
use crate::context::RpcContext;
|
||||||
use crate::db::model::CurrentDependencyInfo;
|
use crate::db::model::CurrentDependencyInfo;
|
||||||
use crate::s9pk::manifest::{Manifest, PackageId};
|
use crate::s9pk::manifest::{Manifest, PackageId};
|
||||||
use crate::status::health_check::{HealthCheckId, HealthCheckResult, HealthCheckResultVariant};
|
use crate::status::health_check::{HealthCheckId, HealthCheckResult};
|
||||||
use crate::status::{MainStatus, Status};
|
use crate::status::{MainStatus, Status};
|
||||||
use crate::util::Version;
|
use crate::util::Version;
|
||||||
use crate::volume::Volumes;
|
use crate::volume::Volumes;
|
||||||
@@ -228,7 +228,7 @@ impl DependencyError {
|
|||||||
| MainStatus::Running { health, .. } => {
|
| MainStatus::Running { health, .. } => {
|
||||||
let mut failures = BTreeMap::new();
|
let mut failures = BTreeMap::new();
|
||||||
for (check, res) in health {
|
for (check, res) in health {
|
||||||
if !matches!(res.result, HealthCheckResultVariant::Success)
|
if !matches!(res, HealthCheckResult::Success)
|
||||||
&& crate::db::DatabaseModel::new()
|
&& crate::db::DatabaseModel::new()
|
||||||
.package_data()
|
.package_data()
|
||||||
.idx_model(id)
|
.idx_model(id)
|
||||||
@@ -303,7 +303,7 @@ impl std::fmt::Display for DependencyError {
|
|||||||
} else {
|
} else {
|
||||||
write!(f, ", ")?;
|
write!(f, ", ")?;
|
||||||
}
|
}
|
||||||
write!(f, "{} @ {} {}", check, res.time, res.result)?;
|
write!(f, "{}: {}", check, res)?;
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,54 +94,34 @@ impl HealthCheck {
|
|||||||
true,
|
true,
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
Ok(HealthCheckResult {
|
Ok(match res {
|
||||||
time: Utc::now(),
|
Ok(NoOutput) => HealthCheckResult::Success,
|
||||||
result: match res {
|
Err((59, _)) => HealthCheckResult::Disabled,
|
||||||
Ok(NoOutput) => HealthCheckResultVariant::Success,
|
Err((60, _)) => HealthCheckResult::Starting,
|
||||||
Err((59, _)) => HealthCheckResultVariant::Disabled,
|
Err((61, message)) => HealthCheckResult::Loading { message },
|
||||||
Err((60, _)) => HealthCheckResultVariant::Starting,
|
Err((_, error)) => HealthCheckResult::Failure { error },
|
||||||
Err((61, message)) => HealthCheckResultVariant::Loading { message },
|
|
||||||
Err((_, error)) => HealthCheckResultVariant::Failure { error },
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
|
||||||
pub struct HealthCheckResult {
|
|
||||||
pub time: DateTime<Utc>,
|
|
||||||
#[serde(flatten)]
|
|
||||||
pub result: HealthCheckResultVariant,
|
|
||||||
}
|
|
||||||
impl HealthCheckResult {
|
|
||||||
pub fn not_available() -> Self {
|
|
||||||
HealthCheckResult {
|
|
||||||
time: Utc::now(),
|
|
||||||
result: HealthCheckResultVariant::Failure {
|
|
||||||
error: "Health Check Status Not Available".to_owned(),
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||||
#[serde(rename_all = "kebab-case")]
|
#[serde(rename_all = "kebab-case")]
|
||||||
#[serde(tag = "result")]
|
#[serde(tag = "result")]
|
||||||
pub enum HealthCheckResultVariant {
|
pub enum HealthCheckResult {
|
||||||
Success,
|
Success,
|
||||||
Disabled,
|
Disabled,
|
||||||
Starting,
|
Starting,
|
||||||
Loading { message: String },
|
Loading { message: String },
|
||||||
Failure { error: String },
|
Failure { error: String },
|
||||||
}
|
}
|
||||||
impl std::fmt::Display for HealthCheckResultVariant {
|
impl std::fmt::Display for HealthCheckResult {
|
||||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
match self {
|
match self {
|
||||||
HealthCheckResultVariant::Success => write!(f, "Succeeded"),
|
HealthCheckResult::Success => write!(f, "Succeeded"),
|
||||||
HealthCheckResultVariant::Disabled => write!(f, "Disabled"),
|
HealthCheckResult::Disabled => write!(f, "Disabled"),
|
||||||
HealthCheckResultVariant::Starting => write!(f, "Starting"),
|
HealthCheckResult::Starting => write!(f, "Starting"),
|
||||||
HealthCheckResultVariant::Loading { message } => write!(f, "Loading ({})", message),
|
HealthCheckResult::Loading { message } => write!(f, "Loading ({})", message),
|
||||||
HealthCheckResultVariant::Failure { error } => write!(f, "Failed ({})", error),
|
HealthCheckResult::Failure { error } => write!(f, "Failed ({})", error),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ use futures::{FutureExt, StreamExt};
|
|||||||
use patch_db::{DbHandle, HasModel, Map, MapModel, ModelData};
|
use patch_db::{DbHandle, HasModel, Map, MapModel, ModelData};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
use self::health_check::{HealthCheckId, HealthCheckResult};
|
use self::health_check::HealthCheckId;
|
||||||
use crate::context::RpcContext;
|
use crate::context::RpcContext;
|
||||||
use crate::db::model::{CurrentDependencyInfo, InstalledPackageDataEntryModel};
|
use crate::db::model::{CurrentDependencyInfo, InstalledPackageDataEntryModel};
|
||||||
use crate::dependencies::{
|
use crate::dependencies::{
|
||||||
@@ -17,7 +17,7 @@ use crate::dependencies::{
|
|||||||
use crate::manager::{Manager, Status as ManagerStatus};
|
use crate::manager::{Manager, Status as ManagerStatus};
|
||||||
use crate::notifications::{notify, NotificationLevel, NotificationSubtype};
|
use crate::notifications::{notify, NotificationLevel, NotificationSubtype};
|
||||||
use crate::s9pk::manifest::{Manifest, PackageId};
|
use crate::s9pk::manifest::{Manifest, PackageId};
|
||||||
use crate::status::health_check::HealthCheckResultVariant;
|
use crate::status::health_check::HealthCheckResult;
|
||||||
use crate::Error;
|
use crate::Error;
|
||||||
|
|
||||||
pub mod health_check;
|
pub mod health_check;
|
||||||
@@ -198,11 +198,8 @@ pub async fn check_all(ctx: &RpcContext) -> Result<(), Error> {
|
|||||||
let res = health
|
let res = health
|
||||||
.get(check)
|
.get(check)
|
||||||
.cloned()
|
.cloned()
|
||||||
.unwrap_or_else(|| HealthCheckResult {
|
.unwrap_or_else(|| HealthCheckResult::Disabled);
|
||||||
result: HealthCheckResultVariant::Disabled,
|
if !matches!(res, HealthCheckResult::Success) {
|
||||||
time: Utc::now(),
|
|
||||||
});
|
|
||||||
if !matches!(res.result, HealthCheckResultVariant::Success) {
|
|
||||||
failures.insert(check.clone(), res);
|
failures.insert(check.clone(), res);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -329,8 +326,8 @@ impl MainStatus {
|
|||||||
.await?;
|
.await?;
|
||||||
let mut should_stop = false;
|
let mut should_stop = false;
|
||||||
for (check, res) in health {
|
for (check, res) in health {
|
||||||
match &res.result {
|
match &res {
|
||||||
health_check::HealthCheckResultVariant::Failure { error }
|
health_check::HealthCheckResult::Failure { error }
|
||||||
if manifest
|
if manifest
|
||||||
.health_checks
|
.health_checks
|
||||||
.0
|
.0
|
||||||
|
|||||||
4
compat/Cargo.lock
generated
4
compat/Cargo.lock
generated
@@ -874,9 +874,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "emver"
|
name = "emver"
|
||||||
version = "0.1.2"
|
version = "0.1.6"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "79b2c25504998d1069f80a8082e3c558acd7c103a2f2399306b12ed06fec5db8"
|
checksum = "ed260c4d7efaec031b9c4f6c4d3cf136e3df2bbfe50925800236f5e847f28704"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"either",
|
"either",
|
||||||
"fp-core",
|
"fp-core",
|
||||||
|
|||||||
2
patch-db
2
patch-db
Submodule patch-db updated: 44f7150bad...f0e6968a79
Reference in New Issue
Block a user