From ce33ce994f4da2a602f5431d94cc80bbb447e6de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Tue, 13 Feb 2018 10:19:05 +0100 Subject: [PATCH] Elastic: Allow resetting and reindexing in one CLI command Use `manage.py elastic reindex [indexname] --reset` to reset first and then reindex. --- pillar/cli/elastic.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pillar/cli/elastic.py b/pillar/cli/elastic.py index 106d99fa..da8806cb 100644 --- a/pillar/cli/elastic.py +++ b/pillar/cli/elastic.py @@ -21,7 +21,7 @@ REINDEX_THREAD_COUNT = 5 @manager_elastic.option('indices', nargs='*') -def reset_index(indices): +def reset_index(indices: typing.List[str]): """ Destroy and recreate elastic indices @@ -139,11 +139,17 @@ def _reindex_nodes(): @manager_elastic.option('indexname', nargs='?') -def reindex(indexname=''): +@manager_elastic.option('-r', '--reset', default=False, action='store_true') +def reindex(indexname='', reset=False): import time import datetime start = time.time() + + if reset: + log.info('Resetting first') + reset_index([indexname] if indexname else []) + if not indexname: log.info('reindex everything..') _reindex_nodes()