Skip to content

Commit 0d7bd2b

Browse files
committed
admin: enqueue CDN invalidations when deleting a crate version
1 parent a298a69 commit 0d7bd2b

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

src/bin/crates-admin/delete_version.rs

+13-1
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,13 @@ pub async fn run(opts: Opts) -> anyhow::Result<()> {
105105
warn!(%crate_name, "Failed to enqueue background job: {error}");
106106
}
107107

108+
let mut paths = Vec::new();
108109
for version in &opts.versions {
109110
debug!(%crate_name, %version, "Deleting crate file from S3");
110111
if let Err(error) = store.delete_crate_file(crate_name, version).await {
111112
warn!(%crate_name, %version, ?error, "Failed to delete crate file from S3");
113+
} else {
114+
paths.push(store.crate_location(crate_name, version));
112115
}
113116

114117
debug!(%crate_name, %version, "Deleting readme file from S3");
@@ -117,9 +120,18 @@ pub async fn run(opts: Opts) -> anyhow::Result<()> {
117120
Err(error) => {
118121
warn!(%crate_name, %version, ?error, "Failed to delete readme file from S3")
119122
}
120-
Ok(_) => {}
123+
Ok(_) => {
124+
paths.push(store.readme_location(crate_name, version));
125+
}
121126
}
122127
}
123128

129+
if let Err(e) = jobs::InvalidateCdns::new(paths.into_iter())
130+
.enqueue(&mut conn)
131+
.await
132+
{
133+
warn!("{crate_name}: Failed to enqueue CDN invalidation background job: {e}");
134+
}
135+
124136
Ok(())
125137
}

0 commit comments

Comments
 (0)