report Ntfy endpoint

This commit is contained in:
Ian Letourneau 2025-09-09 20:12:24 -04:00
parent ceafabf430
commit f3639c604c
7 changed files with 25 additions and 10 deletions

View File

@ -18,7 +18,7 @@ async fn main() {
name: "harmony-example-tryrust".to_string(),
project_root: PathBuf::from("./tryrust.org"),
framework: Some(RustWebFramework::Leptos),
service_port: 8080,
service_port: 3000,
});
let discord_receiver = DiscordWebhook {

View File

@ -88,10 +88,10 @@ pub struct Outcome {
}
impl Outcome {
pub fn noop() -> Self {
pub fn noop(message: String) -> Self {
Self {
status: InterpretStatus::NOOP,
message: String::new(),
message,
details: vec![],
}
}

View File

@ -68,7 +68,9 @@ impl<T: Topology + PrometheusApplicationMonitoring<CRDPrometheus>> Interpret<T>
PreparationOutcome::Success { details: _ } => {
Ok(Outcome::success("Prometheus installed".into()))
}
PreparationOutcome::Noop => Ok(Outcome::noop()),
PreparationOutcome::Noop => {
Ok(Outcome::noop("Prometheus installation skipped".into()))
}
},
Err(err) => Err(InterpretError::from(err)),
}

View File

@ -70,7 +70,9 @@ impl<T: Topology + PrometheusApplicationMonitoring<RHOBObservability>> Interpret
PreparationOutcome::Success { details: _ } => {
Ok(Outcome::success("Prometheus installed".into()))
}
PreparationOutcome::Noop => Ok(Outcome::noop()),
PreparationOutcome::Noop => {
Ok(Outcome::noop("Prometheus installation skipped".into()))
}
},
Err(err) => Err(InterpretError::from(err)),
}

View File

@ -113,7 +113,13 @@ impl<T: Topology + HelmCommand + K8sclient + MultiTargetTopology> Interpret<T> f
.await?;
info!("user added");
Ok(Outcome::success("Ntfy installed".to_string()))
Ok(Outcome::success_with_details(
"Ntfy installed".to_string(),
vec![format!(
"Ntfy ({}): http://{}",
self.score.namespace, self.score.host
)],
))
}
fn get_name(&self) -> InterpretName {

View File

@ -1,7 +1,8 @@
use std::sync::Mutex;
use harmony::instrumentation::{self, HarmonyEvent};
use log::info;
use crate::theme;
pub fn init() {
let details: Mutex<Vec<String>> = Mutex::new(vec![]);
@ -21,11 +22,14 @@ pub fn init() {
if outcome.status == harmony::interpret::InterpretStatus::SUCCESS {
details.extend(outcome.details.clone());
}
} else if let HarmonyEvent::HarmonyFinished = event {
info!("Here's a summary of what happened:");
} else if let HarmonyEvent::HarmonyFinished = event
&& !details.is_empty()
{
println!("\n{} All done! What's next for you:", theme::EMOJI_SUMMARY);
for detail in details.iter() {
println!("{detail}");
println!("- {detail}");
}
println!();
}
}
});

View File

@ -9,6 +9,7 @@ pub static EMOJI_ERROR: Emoji<'_, '_> = Emoji("⚠️", "");
pub static EMOJI_DEPLOY: Emoji<'_, '_> = Emoji("🚀", "");
pub static EMOJI_TOPOLOGY: Emoji<'_, '_> = Emoji("📦", "");
pub static EMOJI_SCORE: Emoji<'_, '_> = Emoji("🎶", "");
pub static EMOJI_SUMMARY: Emoji<'_, '_> = Emoji("🚀", "");
lazy_static! {
pub static ref SECTION_STYLE: ProgressStyle = ProgressStyle::default_spinner()