From c2ec4a089b1ecb248d8359a7aab3f59fdc9e6c18 Mon Sep 17 00:00:00 2001 From: Kerollmops Date: Tue, 18 Oct 2022 17:47:47 +0200 Subject: [PATCH] Put the original URL query in the tasks details --- index-scheduler/src/batch.rs | 4 ++-- meilisearch-http/src/routes/tasks.rs | 10 ++++++---- meilisearch-types/src/tasks.rs | 14 ++++++++++---- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/index-scheduler/src/batch.rs b/index-scheduler/src/batch.rs index dedc0a387..6aef4c947 100644 --- a/index-scheduler/src/batch.rs +++ b/index-scheduler/src/batch.rs @@ -496,7 +496,7 @@ impl IndexScheduler { }; let mut wtxn = self.env.write_txn()?; - let nbr_deleted_tasks = self.delete_matched_tasks(&mut wtxn, matched_tasks)?; + let deleted_tasks_count = self.delete_matched_tasks(&mut wtxn, matched_tasks)?; task.status = Status::Succeeded; match &mut task.details { @@ -505,7 +505,7 @@ impl IndexScheduler { deleted_tasks, original_query: _, }) => { - *deleted_tasks = Some(nbr_deleted_tasks); + *deleted_tasks = Some(deleted_tasks_count); } _ => unreachable!(), } diff --git a/meilisearch-http/src/routes/tasks.rs b/meilisearch-http/src/routes/tasks.rs index 021f7451e..76e9707ab 100644 --- a/meilisearch-http/src/routes/tasks.rs +++ b/meilisearch-http/src/routes/tasks.rs @@ -213,6 +213,7 @@ pub struct TaskCancelationQuery { async fn cancel_tasks( index_scheduler: GuardedData, Data>, + req: HttpRequest, params: web::Query, ) -> Result { let TaskCancelationQuery { @@ -243,12 +244,12 @@ async fn cancel_tasks( let filtered_query = filter_out_inaccessible_indexes_from_query(&index_scheduler, &query); let tasks = index_scheduler.get_task_ids(&filtered_query)?; - let filtered_query_string = yaup::to_string(&filtered_query).unwrap(); let task_cancelation = KindWithContent::TaskCancelation { - query: filtered_query_string, + query: req.query_string().to_string(), tasks, }; + // TODO add a tokio_spawn let task = index_scheduler.register(task_cancelation)?; let task_view = TaskView::from_task(&task); @@ -257,6 +258,7 @@ async fn cancel_tasks( async fn delete_tasks( index_scheduler: GuardedData, Data>, + req: HttpRequest, params: web::Query, ) -> Result { let TaskDeletionQuery { @@ -287,12 +289,12 @@ async fn delete_tasks( let filtered_query = filter_out_inaccessible_indexes_from_query(&index_scheduler, &query); let tasks = index_scheduler.get_task_ids(&filtered_query)?; - let filtered_query_string = yaup::to_string(&filtered_query).unwrap(); let task_deletion = KindWithContent::TaskDeletion { - query: filtered_query_string, + query: req.query_string().to_string(), tasks, }; + // TODO add a tokio_spawn let task = index_scheduler.register(task_deletion)?; let task_view = TaskView::from_task(&task); diff --git a/meilisearch-types/src/tasks.rs b/meilisearch-types/src/tasks.rs index 5eda0b289..0dfa4785c 100644 --- a/meilisearch-types/src/tasks.rs +++ b/meilisearch-types/src/tasks.rs @@ -215,9 +215,11 @@ impl KindWithContent { KindWithContent::IndexSwap { .. } => { todo!() } - KindWithContent::TaskCancelation { .. } => { - None // TODO: check correctness of this return value - } + KindWithContent::TaskCancelation { query, tasks } => Some(Details::TaskCancelation { + matched_tasks: tasks.len(), + canceled_tasks: None, + original_query: query.clone(), + }), KindWithContent::TaskDeletion { query, tasks } => Some(Details::TaskDeletion { matched_tasks: tasks.len(), deleted_tasks: None, @@ -251,7 +253,11 @@ impl From<&KindWithContent> for Option
{ primary_key: primary_key.clone(), }), KindWithContent::IndexSwap { .. } => None, - KindWithContent::TaskCancelation { .. } => None, + KindWithContent::TaskCancelation { query, tasks } => Some(Details::TaskCancelation { + matched_tasks: tasks.len(), + canceled_tasks: None, + original_query: query.clone(), + }), KindWithContent::TaskDeletion { query, tasks } => Some(Details::TaskDeletion { matched_tasks: tasks.len(), deleted_tasks: None,