clusterflux-public/crates/clusterflux-cli/src/logs.rs
Clusterflux release 9f90d6381c Public release release-3988921719e9
Source commit: 3988921719e96f61b19b517860c8da5c95ab8aa6

Public tree identity: sha256:7e139db2e2aa31a144db56600d0928f6cf21eb64717296300b9ad4246037c9ce
2026-07-19 12:16:58 +02:00

34 lines
996 B
Rust

use anyhow::Result;
use serde_json::{json, Value};
use crate::client::list_task_events_if_available_with_session;
use crate::config::StoredCliSession;
use crate::process_events::log_entries;
use crate::LogsArgs;
#[cfg(test)]
pub(crate) fn logs_report(args: LogsArgs) -> Result<Value> {
logs_report_with_session(args, None)
}
pub(crate) fn logs_report_with_session(
args: LogsArgs,
stored_session: Option<&StoredCliSession>,
) -> Result<Value> {
let events = list_task_events_if_available_with_session(
args.scope.coordinator.as_deref(),
&args.scope,
args.process.clone(),
stored_session,
)?;
let log_entries = log_entries(events.as_ref(), args.task.as_deref());
Ok(json!({
"command": "logs",
"process": args.process,
"task": args.task,
"log_entries": log_entries,
"logs_are_capped": true,
"secret_redaction_policy": "configured-redaction-boundary",
"events": events,
}))
}