Skip to content
Snippets Groups Projects
Commit 1906ef6f authored by Bastien Abadie's avatar Bastien Abadie
Browse files

Merge branch 'stale-read-create-images' into 'master'

Fix stale reads in all image creation endpoints

Closes #889

See merge request !1551
parents 019f7c6d eb9b051f
No related branches found
No related tags found
1 merge request!1551Fix stale reads in all image creation endpoints
......@@ -55,7 +55,7 @@ class ImageCreate(CreateAPIView):
image_hash = serializer.validated_data.get('hash')
server = serializer.validated_data.get('server')
path = serializer.validated_data.get('path')
existing_image = server.images.filter(
existing_image = server.images.using('default').filter(
Q(hash=image_hash) | Q(path=path)
).first()
......
......@@ -105,7 +105,7 @@ class IIIFImageSerializer(ImageSerializer):
data['path'] = image_url[len(data['server'].url) + 1:]
# Check image with this server and path does not exist
existing_image = Image.objects.filter(server=data['server'], path=data['path']).first()
existing_image = Image.objects.using('default').filter(server=data['server'], path=data['path']).first()
if existing_image:
raise DuplicatedImage(existing_image.id)
......@@ -119,7 +119,7 @@ class IIIFImageSerializer(ImageSerializer):
# perform_check can alter the image's path since it updates it from info.json.
# This can once more cause duplicated images, so we re-check for an existing image.
existing_image = image.server.images.filter(path=image.path).first()
existing_image = image.server.images.using('default').filter(path=image.path).first()
if existing_image:
raise DuplicatedImage(existing_image.id)
......@@ -148,7 +148,7 @@ class ImageInformationSerializer(serializers.Serializer):
raise ValidationError({'@id': [str(e)]})
image_path = url[len(server.url) + 1:]
image = server.images.filter(path=image_path).first()
image = server.images.using('default').filter(path=image_path).first()
if not image:
# This is a new image
image = Image(server=server, path=image_path)
......@@ -163,7 +163,7 @@ class ImageInformationSerializer(serializers.Serializer):
image = Image(**validated_data)
if 'id' in validated_data:
try:
image = Image.objects.get(pk=validated_data['id'])
image = Image.objects.using('default').get(pk=validated_data['id'])
except Image.DoesNotExist:
pass
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment