Don't raise an error on duplicate placements

This can happen if two pushes are racing on the same storage.
This commit is contained in:
Joseph Schorr 2016-07-19 16:44:05 -04:00
parent 5c9d55ecbd
commit b8d2570725
2 changed files with 4 additions and 2 deletions

View file

@ -39,7 +39,10 @@ def get_image_location_for_id(location_id):
def add_storage_placement(storage, location_name):
""" Adds a storage placement for the given storage at the given location. """
location = get_image_location_for_name(location_name)
ImageStoragePlacement.create(location=location.id, storage=storage)
try:
ImageStoragePlacement.create(location=location.id, storage=storage)
except IntegrityError:
# Placement already exists. Nothing to do.
def garbage_collect_storage(storage_id_whitelist):

View file

@ -46,7 +46,6 @@ class StorageReplicationWorker(QueueWorker):
return True
# For any missing storage locations, initiate a copy.
storage_paths = StoragePaths()
existing_location = list(partial_storage.locations)[0]
for location in locations_missing: