mirror of
https://github.com/haiwen/seahub.git
synced 2025-08-25 10:11:24 +00:00
script can update seasearch index (#7395)
This commit is contained in:
parent
3a71b7d80b
commit
cc597b331c
122
scripts/pro.py
122
scripts/pro.py
@ -639,12 +639,59 @@ def do_setup(args):
|
|||||||
pro_config.config()
|
pro_config.config()
|
||||||
pro_config.generate()
|
pro_config.generate()
|
||||||
|
|
||||||
|
|
||||||
|
def parse_bool(v):
|
||||||
|
if isinstance(v, bool):
|
||||||
|
return v
|
||||||
|
|
||||||
|
v = str(v).lower()
|
||||||
|
|
||||||
|
if v == '1' or v == 'true':
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def get_opt_from_conf_or_env(config, section, key, env_key=None, default=None):
|
||||||
|
"""Get option value from events.conf. If not specified in events.conf, check the environment variable.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
return config.get(section, key)
|
||||||
|
except configparser.Error:
|
||||||
|
if env_key is None:
|
||||||
|
return default
|
||||||
|
else:
|
||||||
|
return os.environ.get(env_key.upper(), default)
|
||||||
|
|
||||||
|
|
||||||
def handle_search_commands(args):
|
def handle_search_commands(args):
|
||||||
'''provide search related utility'''
|
'''provide search related utility'''
|
||||||
|
events_conf = os.path.join(env_mgr.central_config_dir, 'seafevents.conf')
|
||||||
|
config = Utils.read_config(events_conf)
|
||||||
|
|
||||||
|
es_section_name = 'INDEX FILES'
|
||||||
|
seasearch_section_name = 'SEASEARCH'
|
||||||
|
key_enabled = 'enabled'
|
||||||
|
|
||||||
|
es_enabled = get_opt_from_conf_or_env(config, es_section_name, key_enabled, default=False)
|
||||||
|
seaseach_enabled = get_opt_from_conf_or_env(config, seasearch_section_name, key_enabled, default=False)
|
||||||
|
|
||||||
|
es_enabled = parse_bool(es_enabled)
|
||||||
|
seaseach_enabled = parse_bool(seaseach_enabled)
|
||||||
|
|
||||||
|
if es_enabled and seaseach_enabled:
|
||||||
|
raise Exception('ES and seasearch cannot be configured simultaneously.')
|
||||||
|
|
||||||
if args.update:
|
if args.update:
|
||||||
update_search_index()
|
if seaseach_enabled:
|
||||||
|
update_seasearch_index()
|
||||||
|
elif es_enabled:
|
||||||
|
update_search_index()
|
||||||
elif args.clear:
|
elif args.clear:
|
||||||
delete_search_index()
|
if seaseach_enabled:
|
||||||
|
delete_seasearch_index()
|
||||||
|
elif es_enabled:
|
||||||
|
delete_search_index()
|
||||||
|
|
||||||
def get_seafes_env():
|
def get_seafes_env():
|
||||||
env = env_mgr.get_seahub_env()
|
env = env_mgr.get_seahub_env()
|
||||||
@ -723,6 +770,77 @@ def delete_wiki_search_index():
|
|||||||
|
|
||||||
Utils.run_argv(argv, env=get_seafes_env())
|
Utils.run_argv(argv, env=get_seafes_env())
|
||||||
|
|
||||||
|
|
||||||
|
def update_seasearch_index():
|
||||||
|
update_file_seasearch_index()
|
||||||
|
update_wiki_seasearch_index()
|
||||||
|
|
||||||
|
|
||||||
|
def update_file_seasearch_index():
|
||||||
|
argv = [
|
||||||
|
Utils.get_python_executable(),
|
||||||
|
'-m', 'seafevents.seasearch.script.repo_filename_index_local',
|
||||||
|
'--loglevel', 'debug',
|
||||||
|
'update',
|
||||||
|
]
|
||||||
|
|
||||||
|
Utils.info('\nUpdating seasearch filename index, this may take a while...\n')
|
||||||
|
|
||||||
|
Utils.run_argv(argv, env=get_seafes_env())
|
||||||
|
|
||||||
|
|
||||||
|
def update_wiki_seasearch_index():
|
||||||
|
argv = [
|
||||||
|
Utils.get_python_executable(),
|
||||||
|
'-m', 'seafevents.seasearch.script.wiki_index_local',
|
||||||
|
'--loglevel', 'debug',
|
||||||
|
'update',
|
||||||
|
]
|
||||||
|
|
||||||
|
Utils.info('\nUpdating seasearch wiki index, this may take a while...\n')
|
||||||
|
|
||||||
|
Utils.run_argv(argv, env=get_seafes_env())
|
||||||
|
|
||||||
|
|
||||||
|
def delete_seasearch_index():
|
||||||
|
choice = None
|
||||||
|
while choice not in ('y', 'n', ''):
|
||||||
|
prompt = 'Delete seafile search index ([y]/n)? '
|
||||||
|
choice = input(prompt).strip()
|
||||||
|
|
||||||
|
if choice == 'n':
|
||||||
|
return
|
||||||
|
|
||||||
|
delete_file_seasearch_index()
|
||||||
|
delete_wiki_seasearch_index()
|
||||||
|
|
||||||
|
|
||||||
|
def delete_file_seasearch_index():
|
||||||
|
argv = [
|
||||||
|
Utils.get_python_executable(),
|
||||||
|
'-m', 'seafevents.seasearch.script.repo_filename_index_local',
|
||||||
|
'--loglevel', 'debug',
|
||||||
|
'clear',
|
||||||
|
]
|
||||||
|
|
||||||
|
Utils.info('\nDelete seasearch filename index, this may take a while...\n')
|
||||||
|
|
||||||
|
Utils.run_argv(argv, env=get_seafes_env())
|
||||||
|
|
||||||
|
|
||||||
|
def delete_wiki_seasearch_index():
|
||||||
|
argv = [
|
||||||
|
Utils.get_python_executable(),
|
||||||
|
'-m', 'seafevents.seasearch.script.wiki_index_local',
|
||||||
|
'--loglevel', 'debug',
|
||||||
|
'clear',
|
||||||
|
]
|
||||||
|
|
||||||
|
Utils.info('\nDelete seasearch wiki index, this may take a while...\n')
|
||||||
|
|
||||||
|
Utils.run_argv(argv, env=get_seafes_env())
|
||||||
|
|
||||||
|
|
||||||
def handle_ldap_sync_commands(args):
|
def handle_ldap_sync_commands(args):
|
||||||
if args.test:
|
if args.test:
|
||||||
argv = [
|
argv = [
|
||||||
|
Loading…
Reference in New Issue
Block a user