MCPcopy Create free account
hub / github.com/bootc-dev/bootc / export_container

Method export_container

crates/ostree-ext/src/fixture.rs:890–927  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

888 /// This defaults to using chunking.
889 #[context("Exporting container")]
890 pub async fn export_container(&self) -> Result<(ImageReference, oci_image::Digest)> {
891 let name = "oci-v1";
892 let container_path = &self.path.join(name);
893 if container_path.exists() {
894 std::fs::remove_dir_all(container_path)?;
895 }
896 let imgref = ImageReference {
897 transport: Transport::OciDir,
898 name: container_path.as_str().to_string(),
899 };
900 let config = Config {
901 labels: Some(
902 [("foo", "bar"), ("test", "value")]
903 .iter()
904 .map(|(k, v)| (k.to_string(), v.to_string()))
905 .collect(),
906 ),
907 ..Default::default()
908 };
909 let contentmeta = self.get_object_meta().context("Computing object meta")?;
910 let contentmeta = ObjectMetaSized::compute_sizes(self.srcrepo(), contentmeta)
911 .context("Computing sizes")?;
912 let opts = ExportOpts {
913 max_layers: std::num::NonZeroU32::new(PKGS_V0_LEN as u32),
914 package_contentmeta: Some(&contentmeta),
915 ..Default::default()
916 };
917 let digest = crate::container::encapsulate(
918 self.srcrepo(),
919 self.testref(),
920 &config,
921 Some(opts),
922 &imgref,
923 )
924 .await
925 .context("exporting")?;
926 Ok((imgref, digest))
927 }
928
929 // Generate a directory with some test contents
930 #[context("Generating temp content")]

Calls 10

encapsulateFunction · 0.85
existsMethod · 0.80
get_object_metaMethod · 0.80
srcrepoMethod · 0.80
testrefMethod · 0.80
buildMethod · 0.80
append_tarMethod · 0.80
into_innerMethod · 0.80
digestMethod · 0.80
iterMethod · 0.45

Tested by 15

create_fixtureFunction · 0.64
test_no_fetch_digestedFunction · 0.64
test_container_chunkedFunction · 0.64
test_non_ostreeFunction · 0.64
test_non_gzipFunction · 0.64