Elastic: handle pictures without variations or project ID
This happens on old file documents.
This commit is contained in:
@@ -41,14 +41,26 @@ def _handle_picture(node: dict, to_index: dict):
|
|||||||
picture = files_collection.find_one(lookup)
|
picture = files_collection.find_one(lookup)
|
||||||
|
|
||||||
img_variation_t = next(
|
img_variation_t = next(
|
||||||
(item for item in picture['variations']
|
(item for item in picture.get('variations', [])
|
||||||
if item['size'] == 't'), None)
|
if item['size'] == 't'), None)
|
||||||
|
|
||||||
if img_variation_t:
|
if not img_variation_t:
|
||||||
|
return
|
||||||
|
|
||||||
|
try:
|
||||||
|
pic_pid = picture['project']
|
||||||
|
except KeyError:
|
||||||
|
if picture.get('backend') != 'pillar':
|
||||||
|
# We know for sure that locally saved images don't need regeneration,
|
||||||
|
# so don't bother warning about that.
|
||||||
|
log.warning('Picture %s has no project ID, unable to regenerate link',
|
||||||
|
picture['_id'])
|
||||||
|
to_index['picture'] = img_variation_t['link']
|
||||||
|
else:
|
||||||
to_index['picture'] = generate_link(
|
to_index['picture'] = generate_link(
|
||||||
picture['backend'],
|
picture['backend'],
|
||||||
img_variation_t['file_path'],
|
img_variation_t['file_path'],
|
||||||
project_id=str(picture['project']),
|
project_id=str(pic_pid),
|
||||||
is_public=True)
|
is_public=True)
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user