From 49b4227f25983eadbf66c7746e0bf4989a59eeab Mon Sep 17 00:00:00 2001 From: Arlo Siemsen Date: Thu, 18 Aug 2022 13:16:22 -0500 Subject: [PATCH] admin/delete_crate: Use `sync_to_git/sparse_index()` jobs if `FEATURE_INDEX_SYNC` env var is set This ensures that the crate is deleted from both the git index and the sparse index, and that the CloudFront invalidation is correctly sent out. --- src/admin/delete_crate.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/admin/delete_crate.rs b/src/admin/delete_crate.rs index 10571ae6c63..203fe7ba962 100644 --- a/src/admin/delete_crate.rs +++ b/src/admin/delete_crate.rs @@ -1,3 +1,4 @@ +use crate::background_jobs::Job; use crate::{admin::dialoguer, config, db, models::Crate, schema::crates}; use diesel::prelude::*; @@ -54,5 +55,12 @@ fn delete(opts: Opts, conn: &mut PgConnection) { panic!("aborting transaction"); } - uploader.delete_index(&client, &krate.name).unwrap(); + if dotenv::var("FEATURE_INDEX_SYNC").is_ok() { + Job::sync_to_git_index(&krate.name).enqueue(conn).unwrap(); + Job::sync_to_sparse_index(&krate.name) + .enqueue(conn) + .unwrap(); + } else { + uploader.delete_index(&client, &krate.name).unwrap(); + } }