20260914 强制 TOML 配置并完善 TA 刷新与 daemon
Some checks failed
ci / rust (push) Has been cancelled
ci / docker (push) Has been cancelled
ci / audit (push) Has been cancelled

This commit is contained in:
2026-09-14 16:58:08 +08:00
parent 6383e2c12c
commit 4975128945
48 changed files with 2795 additions and 1459 deletions

View File

@@ -212,9 +212,13 @@ impl ManifestFreshError {
use crate::output::report::WarningCategory;
match self {
Self::Storage(_) | Self::RepoSyncFailed { .. } => WarningCategory::Unclassified,
Self::IssuerCaLoadFailed { .. } | Self::EeCertPath(_) | Self::EeResources(_) => WarningCategory::Certificate,
Self::ManifestOutsidePublicationPoint { .. } | Self::ManifestNumberNotIncreasing { .. }
| Self::ThisUpdateNotIncreasing { .. } | Self::HashMismatch { .. } => WarningCategory::SecurityPolicy,
Self::IssuerCaLoadFailed { .. } | Self::EeCertPath(_) | Self::EeResources(_) => {
WarningCategory::Certificate
}
Self::ManifestOutsidePublicationPoint { .. }
| Self::ManifestNumberNotIncreasing { .. }
| Self::ThisUpdateNotIncreasing { .. }
| Self::HashMismatch { .. } => WarningCategory::SecurityPolicy,
_ => WarningCategory::ManifestCrl,
}
}

View File

@@ -273,7 +273,11 @@ fn discover_multiple_roots_from_tal_inputs(
let mut roots = Vec::with_capacity(tal_inputs.len());
crate::logging::observer::phase("trust_anchor_discovery");
for tal_input in tal_inputs {
crate::logging::emit(crate::logging::Level::Info, "trust_anchor_started", || serde_json::json!({"tal_id": tal_input.tal_id}));
crate::logging::emit(
crate::logging::Level::Info,
"trust_anchor_started",
|| serde_json::json!({"tal_id": tal_input.tal_id}),
);
let discovery = match root_discovery_from_tal_input(
tal_input,
http_fetcher,
@@ -295,7 +299,11 @@ fn discover_multiple_roots_from_tal_inputs(
continue;
}
Err(error) => {
crate::logging::emit(crate::logging::Level::Error, "trust_anchor_failed", || serde_json::json!({"tal_id": tal_input.tal_id, "error": error.to_string()}));
crate::logging::emit(
crate::logging::Level::Error,
"trust_anchor_failed",
|| serde_json::json!({"tal_id": tal_input.tal_id, "error": error.to_string()}),
);
return Err(error.into());
}
};
@@ -310,7 +318,11 @@ fn discover_multiple_roots_from_tal_inputs(
discovery,
root_handle,
});
crate::logging::emit(crate::logging::Level::Info, "trust_anchor_completed", || serde_json::json!({"tal_id": tal_input.tal_id}));
crate::logging::emit(
crate::logging::Level::Info,
"trust_anchor_completed",
|| serde_json::json!({"tal_id": tal_input.tal_id}),
);
}
if roots.is_empty() {
return Err(RunTreeFromTalError::Setup(

View File

@@ -164,17 +164,19 @@ pub fn run_tree_parallel_phase2_audit_multi_root(
config,
);
crate::logging::observer::update(finished.len() as u64, || serde_json::json!({
"publication_points_completed": finished.len(),
"publication_points_started": instances_started,
"ca_queue": ca_queue.len(), "ready_queue": ready_queue.len(),
"waiting_repository_identities": ca_waiting_repo_by_identity.len(),
"publication_points_inflight": inflight_publication_points.len(),
"pending_object_dispatch": pending_roa_dispatch.len(),
"pending_finalization": pending_finalization.len(),
"finalization_inflight": finalize_inflight,
"staging_inflight": staging_inflight,
}));
crate::logging::observer::update(finished.len() as u64, || {
serde_json::json!({
"publication_points_completed": finished.len(),
"publication_points_started": instances_started,
"ca_queue": ca_queue.len(), "ready_queue": ready_queue.len(),
"waiting_repository_identities": ca_waiting_repo_by_identity.len(),
"publication_points_inflight": inflight_publication_points.len(),
"pending_object_dispatch": pending_roa_dispatch.len(),
"pending_finalization": pending_finalization.len(),
"finalization_inflight": finalize_inflight,
"staging_inflight": staging_inflight,
})
});
let repo_poll_timeout = event_poll_timeout(
&ca_queue,
&ready_queue,

View File

@@ -127,7 +127,9 @@ fn build_publication_point_audit_from_failed_fetch(
.map(AuditWarning::from)
.collect::<Vec<_>>();
warnings.push(AuditWarning::from(
&Warning::new(fresh_error.to_string()).with_category(fresh_error.warning_category()).with_context(&ca.manifest_rsync_uri),
&Warning::new(fresh_error.to_string())
.with_category(fresh_error.warning_category())
.with_context(&ca.manifest_rsync_uri),
));
PublicationPointAudit {
node_id: None,