From: Elrond Date: Sun, 19 Feb 2012 11:13:26 +0000 (+0100) Subject: Use task_id in generating the queue file path X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=572d4f01ff3bee75574c00bc85bc8a2700ba9828;p=mediagoblin.git Use task_id in generating the queue file path The task_id is created anyway as a UUID. So it is very unique per definition. The only thing needed for the queue file path is a unique part. Before the objectid of the MediaEntry was used instead. But in the sql world the objectid is only available after an "insert" on the db. And creating the queue_file_path afterwards would require an "update" on the db. We can save that. ... for now. --- diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 845400ca..df5b15c0 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -78,11 +78,18 @@ def submit_start(request): # Generate a slug from the title entry.generate_slug() + # We generate this ourselves so we know what the taks id is for + # retrieval later. + + # (If we got it off the task's auto-generation, there'd be + # a risk of a race condition when we'd save after sending + # off the task) + task_id = unicode(uuid.uuid4()) # Now store generate the queueing related filename queue_filepath = request.app.queue_store.get_unique_filepath( ['media_entries', - unicode(entry._id), + task_id, secure_filename(filename)]) # queue appropriately @@ -95,14 +102,7 @@ def submit_start(request): # Add queued filename to the entry entry.queued_media_file = queue_filepath - # We generate this ourselves so we know what the taks id is for - # retrieval later. - - # (If we got it off the task's auto-generation, there'd be - # a risk of a race condition when we'd save after sending - # off the task) - task_id = unicode(uuid.uuid4()) - entry['queued_task_id'] = task_id + entry.queued_task_id = task_id # Save now so we have this data before kicking off processing entry.save(validate=True)