Skip to content

Commit b5b8cab

Browse files
committed
deploy: Use new ostree-ext pruning API
This will ensure we're really pruning everything. xref coreos/rpm-ostree#4720 Signed-off-by: Colin Walters <[email protected]>
1 parent 5463470 commit b5b8cab

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

lib/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ anstream = "0.6.4"
1515
anstyle = "1.0.4"
1616
anyhow = "1.0"
1717
camino = { version = "1.0.4", features = ["serde1"] }
18-
ostree-ext = { version = "0.12", git = "https://github.com/ostreedev/ostree-rs-ext/"}
18+
ostree-ext = { version = "0.12.8" }
1919
chrono = { version = "0.4.23", features = ["serde"] }
2020
clap = { version= "4.2", features = ["derive"] }
2121
clap_mangen = { version = "0.2", optional = true }

lib/src/deploy.rs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,11 @@ pub(crate) async fn pull(
122122
}
123123

124124
pub(crate) async fn cleanup(sysroot: &SysrootLock) -> Result<()> {
125+
// We create clones (just atomic reference bumps) here to move to the thread.
125126
let repo = sysroot.repo();
126127
let sysroot = sysroot.sysroot.clone();
127128
ostree_ext::tokio_util::spawn_blocking_cancellable_flatten(move |cancellable| {
129+
let locked_sysroot = &SysrootLock::from_assumed_locked(&sysroot);
128130
let cancellable = Some(cancellable);
129131
let repo = &repo;
130132
let txn = repo.auto_transaction(cancellable)?;
@@ -152,6 +154,17 @@ pub(crate) async fn cleanup(sysroot: &SysrootLock) -> Result<()> {
152154
}
153155
}
154156

157+
let pruned = ostree_container::deploy::prune(locked_sysroot).context("Pruning images")?;
158+
if !pruned.is_empty() {
159+
let size = glib::format_size(pruned.objsize);
160+
println!(
161+
"Pruned images: {} (layers: {}, objsize: {})",
162+
pruned.n_images, pruned.n_layers, size
163+
);
164+
} else {
165+
tracing::debug!("Nothing to prune");
166+
}
167+
155168
Ok(())
156169
})
157170
.await
@@ -219,7 +232,6 @@ pub(crate) async fn stage(
219232
println!(" Version: {version}");
220233
}
221234
println!(" Digest: {}", image.manifest_digest);
222-
ostree_container::deploy::remove_undeployed_images(sysroot).context("Pruning images")?;
223235

224236
Ok(())
225237
}

0 commit comments

Comments
 (0)