@@ -29,6 +29,7 @@ use oci_spec::image::{
29
29
use ostree:: prelude:: { Cast , FileEnumeratorExt , FileExt , ToVariant } ;
30
30
use ostree:: { gio, glib} ;
31
31
use std:: collections:: { BTreeMap , BTreeSet , HashMap } ;
32
+ use std:: fmt:: Write as _;
32
33
use std:: iter:: FromIterator ;
33
34
use tokio:: sync:: mpsc:: { Receiver , Sender } ;
34
35
@@ -959,10 +960,19 @@ impl ImageImporter {
959
960
. await
960
961
. with_context ( || format ! ( "Parsing layer blob {}" , layer. layer. digest( ) ) ) ?;
961
962
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) ;
966
976
} else {
967
977
tracing:: debug!( "No filtered content" ) ;
968
978
}
0 commit comments