11use crate :: schema:: { crate_owners, teams, users} ;
2- use crate :: storage:: { FeedId , Storage } ;
32use crate :: worker:: jobs;
43use crate :: { admin:: dialoguer, db, schema:: crates} ;
54use anyhow:: Context ;
5+ use crates_io_worker:: BackgroundJob ;
66use diesel:: dsl:: sql;
77use diesel:: prelude:: * ;
88use diesel:: sql_types:: Text ;
@@ -27,8 +27,6 @@ pub struct Opts {
2727pub fn run ( opts : Opts ) -> anyhow:: Result < ( ) > {
2828 let conn = & mut db:: oneoff_connection ( ) . context ( "Failed to establish database connection" ) ?;
2929
30- let store = Storage :: from_environment ( ) ;
31-
3230 let mut crate_names = opts. crate_names ;
3331 crate_names. sort ( ) ;
3432
@@ -73,11 +71,6 @@ pub fn run(opts: Opts) -> anyhow::Result<()> {
7371 return Ok ( ( ) ) ;
7472 }
7573
76- let rt = tokio:: runtime:: Builder :: new_current_thread ( )
77- . enable_all ( )
78- . build ( )
79- . context ( "Failed to initialize tokio runtime" ) ?;
80-
8174 for name in & crate_names {
8275 if let Some ( ( id, _) ) = existing_crates. get ( name) {
8376 info ! ( "{name}: Deleting crate from the database…" ) ;
@@ -93,20 +86,10 @@ pub fn run(opts: Opts) -> anyhow::Result<()> {
9386 warn ! ( "{name}: Failed to enqueue index sync jobs: {error}" ) ;
9487 }
9588
96- info ! ( "{name}: Deleting crate files from S3…" ) ;
97- if let Err ( error) = rt. block_on ( store. delete_all_crate_files ( name) ) {
98- warn ! ( "{name}: Failed to delete crate files from S3: {error}" ) ;
99- }
100-
101- info ! ( "{name}: Deleting readme files from S3…" ) ;
102- if let Err ( error) = rt. block_on ( store. delete_all_readmes ( name) ) {
103- warn ! ( "{name}: Failed to delete readme files from S3: {error}" ) ;
104- }
105-
106- info ! ( "{name}: Deleting RSS feed from S3…" ) ;
107- let feed_id = FeedId :: Crate { name } ;
108- if let Err ( error) = rt. block_on ( store. delete_feed ( & feed_id) ) {
109- warn ! ( "{name}: Failed to delete RSS feed from S3: {error}" ) ;
89+ info ! ( "{name}: Enqueuing DeleteCrateFromStorage job…" ) ;
90+ let job = jobs:: DeleteCrateFromStorage :: new ( name. into ( ) ) ;
91+ if let Err ( error) = job. enqueue ( conn) {
92+ warn ! ( "{name}: Failed to enqueue DeleteCrateFromStorage job: {error}" ) ;
11093 }
11194 }
11295
0 commit comments