diff --git a/pillar/api/file_storage/__init__.py b/pillar/api/file_storage/__init__.py index 30c8f40c..13457afe 100644 --- a/pillar/api/file_storage/__init__.py +++ b/pillar/api/file_storage/__init__.py @@ -338,7 +338,7 @@ def process_file(bucket: Bucket, file_id, status, r) -def generate_link(backend, file_path: str, project_id=None, is_public=False) -> str: +def generate_link(backend, file_path: str, project_id: str=None, is_public=False) -> str: """Hook to check the backend of a file resource, to build an appropriate link that can be used by the client to retrieve the actual file. """ diff --git a/pillar/celery/search_index_tasks.py b/pillar/celery/search_index_tasks.py index 09370b4c..d0d838df 100644 --- a/pillar/celery/search_index_tasks.py +++ b/pillar/celery/search_index_tasks.py @@ -29,21 +29,25 @@ def _get_node_from_id(node_id: str): def _handle_picture(node: dict, to_index: dict): - """ - add picture fields to be indexed - """ + """Add picture URL in-place to the to-be-indexed node.""" - if not node.get('picture'): + picture_id = node.get('picture') + if not picture_id: return files_collection = current_app.data.driver.db['files'] - lookup = {'_id': ObjectId(node['picture'])} + lookup = {'_id': ObjectId(picture_id)} picture = files_collection.find_one(lookup) for item in picture.get('variations', []): if item['size'] != 't': continue - to_index['picture'] = item['link'] + + link = generate_link(picture['backend'], + item['file_path'], + str(picture['project']), + is_public=True) + to_index['picture'] = link break diff --git a/pillar/cli/elastic.py b/pillar/cli/elastic.py index b7237b2c..106d99fa 100644 --- a/pillar/cli/elastic.py +++ b/pillar/cli/elastic.py @@ -17,7 +17,7 @@ name_to_task = { 'nodes': index.ResetNodeIndex, 'users': index.ResetUserIndex, } -REINDEX_THREAD_COUNT = 3 +REINDEX_THREAD_COUNT = 5 @manager_elastic.option('indices', nargs='*')