From c017ebf2c8dd957d27238a983ded365ffb5aa539 Mon Sep 17 00:00:00 2001 From: Sylvan Ridderinkhof Date: Mon, 28 Aug 2023 12:14:15 +0200 Subject: [PATCH] feat: added single core empty feature --- direct_indexing/direct_indexing.py | 15 +++++++++++++++ direct_indexing/tasks.py | 9 +++++++++ 2 files changed, 24 insertions(+) diff --git a/direct_indexing/direct_indexing.py b/direct_indexing/direct_indexing.py index 44c9cde3d..718a81751 100644 --- a/direct_indexing/direct_indexing.py +++ b/direct_indexing/direct_indexing.py @@ -40,6 +40,21 @@ def clear_indices(): raise pysolr.SolrError +def clear_indices_for_core(core): + """ + Clear all indices as indicated by the 'cores' variable. + """ + try: + logging.info(f'clear_indices:: Clearing {core} core') + solr = pysolr.Solr(f'{settings.SOLR_URL}/{core}', always_commit=True) + solr.delete(q='*:*') + logging.info(f'clear_indices:: Finished clearing {core} core') + return 'Success' + except pysolr.SolrError: + logging.error('clear_indices:: Could not clear indices') + raise pysolr.SolrError + + # Subsets of the indexing process def run_publisher_metadata(): result = index_publisher_metadata() diff --git a/direct_indexing/tasks.py b/direct_indexing/tasks.py index 0b7aceaaf..cf5e8ab31 100644 --- a/direct_indexing/tasks.py +++ b/direct_indexing/tasks.py @@ -22,6 +22,15 @@ def clear_all_cores(): return direct_indexing.clear_indices() +@shared_task +def clear_cores_with_name(core="publisher"): + """ + Simply trigger process clearing all solr cores. + """ + logging.info("clear_all_cores:: Starting direct indexing clear all cores.") + return direct_indexing.clear_indices_for_core(core) + + @shared_task def start(update=False): # Only if the most recent data dump was a success