From 236e10abb089f64d29a1ae23559e42a60fd828ca Mon Sep 17 00:00:00 2001 From: Jason Kang Date: Thu, 28 Oct 2021 12:37:38 -0700 Subject: [PATCH 1/2] Updat deletebyquery tool --- tools/deletebyquery/deletebyquery.py | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/tools/deletebyquery/deletebyquery.py b/tools/deletebyquery/deletebyquery.py index 8ed70ddc..e064ce18 100644 --- a/tools/deletebyquery/deletebyquery.py +++ b/tools/deletebyquery/deletebyquery.py @@ -31,6 +31,7 @@ solr_connection = None solr_collection = None SOLR_UNIQUE_KEY = None +solr_delete_from_all_collections = None cassandra_cluster = None cassandra_session = None @@ -45,11 +46,16 @@ def init(args): global solr_connection solr_connection = SolrConnection(args.solr) + global solr_collection solr_collection = solr_connection[args.collection] + global SOLR_UNIQUE_KEY SOLR_UNIQUE_KEY = args.solrIdField + global solr_delete_from_all_collections + solr_delete_from_all_collections = args.deleteFromAllCollections + dc_policy = RoundRobinPolicy() token_policy = TokenAwarePolicy(dc_policy) @@ -186,8 +192,14 @@ def delete_from_cassandra(doc_ids): def delete_from_solr(query): - solr_collection.delete(query, commit=False) - solr_collection.commit() + if not solr_delete_from_all_collections: + solr_collection.delete(query, commit=False) + solr_collection.commit() + else: + for collection in dir(solr_connection): + solr_collection = solr_connection[collection] + solr_collection.delete(query, commit=False) + solr_collection.commit() def parse_args(): @@ -210,6 +222,13 @@ def parse_args(): required=False, default='id', metavar='id') + + parser.add_argument('--deleteFromAllCollections', + help='Delete from all collections in SOLR, not limiting ' \ + 'to the collection specified in collection option', + required=False, + default=False, + action='store_true') parser.add_argument('--cassandra', help='The hostname(s) or IP(s) of the Cassandra server(s).', @@ -243,8 +262,9 @@ def parse_args(): parser.add_argument('-p', '--cassandraPort', help='The port used to connect to Cassandra.', + type=int, required=False, - default='9042') + default=9042) parser.add_argument('--cassandraUsername', help='The username used to connect to Cassandra.', From ab57d32d28288f62e505a684229d5dd4cff875b2 Mon Sep 17 00:00:00 2001 From: Jason Kang Date: Tue, 7 Dec 2021 09:14:38 -0800 Subject: [PATCH 2/2] Need to declare solr_collection as global --- tools/deletebyquery/deletebyquery.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/deletebyquery/deletebyquery.py b/tools/deletebyquery/deletebyquery.py index e064ce18..b7098b7b 100644 --- a/tools/deletebyquery/deletebyquery.py +++ b/tools/deletebyquery/deletebyquery.py @@ -192,6 +192,7 @@ def delete_from_cassandra(doc_ids): def delete_from_solr(query): + global solr_collection if not solr_delete_from_all_collections: solr_collection.delete(query, commit=False) solr_collection.commit()