Skip to content

Commit 95d3252

Browse files
committed
store: Improve logging for filtered content
We thought this code may be related to a bug where layer content was apparently getting lost, though I don't think it was in the end. Anyways though, use the same "show first n items from iterator" code that we have in the lint to actually display the filtered state. Signed-off-by: Colin Walters <[email protected]>
1 parent 63ccfd1 commit 95d3252

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

ostree-ext/src/container/store.rs

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ use oci_spec::image::{
2929
use ostree::prelude::{Cast, FileEnumeratorExt, FileExt, ToVariant};
3030
use ostree::{gio, glib};
3131
use std::collections::{BTreeMap, BTreeSet, HashMap};
32+
use std::fmt::Write as _;
3233
use std::iter::FromIterator;
3334
use tokio::sync::mpsc::{Receiver, Sender};
3435

@@ -959,10 +960,19 @@ impl ImageImporter {
959960
.await
960961
.with_context(|| format!("Parsing layer blob {}", layer.layer.digest()))?;
961962
layer_commits.push(r.commit);
962-
if !r.filtered.is_empty() {
963-
let filtered = HashMap::from_iter(r.filtered.into_iter());
964-
tracing::debug!("Found {} filtered toplevels", filtered.len());
965-
layer_filtered_content.insert(layer.layer.digest().to_string(), filtered);
963+
let filtered_owned = HashMap::from_iter(r.filtered.clone());
964+
if let Some((filtered, n_rest)) =
965+
bootc_utils::iterator_split_nonempty_rest_count(r.filtered.iter(), 5)
966+
{
967+
let mut msg = String::new();
968+
for (path, n) in filtered {
969+
write!(msg, "{path}: {n} ").unwrap();
970+
}
971+
if n_rest > 0 {
972+
write!(msg, "...and {n_rest} more").unwrap();
973+
}
974+
tracing::debug!("Found filtered toplevels: {msg}");
975+
layer_filtered_content.insert(layer.layer.digest().to_string(), filtered_owned);
966976
} else {
967977
tracing::debug!("No filtered content");
968978
}

0 commit comments

Comments
 (0)