From 81c59ef06b1e53fa0d9b177b5a8e7978d1b01186 Mon Sep 17 00:00:00 2001 From: vijeth-aradhya Date: Mon, 5 Jun 2017 01:58:00 +0530 Subject: [PATCH] Add workflow method to VideoProcessingManager This commit makes sure the old celery call works perfectly when workflow method is introduced. --- mediagoblin/media_types/video/processing.py | 6 ++++++ mediagoblin/processing/__init__.py | 2 +- mediagoblin/submit/lib.py | 10 ++++++---- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/mediagoblin/media_types/video/processing.py b/mediagoblin/media_types/video/processing.py index e6b4a0b2..d3fa9d5f 100644 --- a/mediagoblin/media_types/video/processing.py +++ b/mediagoblin/media_types/video/processing.py @@ -28,6 +28,7 @@ from mediagoblin.processing import ( ProcessingManager, request_from_args, get_process_filename, store_public, copy_original) +from mediagoblin.processing.task import ProcessMedia from mediagoblin.tools.translate import lazy_pass_to_ugettext as _ from mediagoblin.media_types import MissingComponents @@ -503,3 +504,8 @@ class VideoProcessingManager(ProcessingManager): self.add_processor(InitialProcessor) self.add_processor(Resizer) self.add_processor(Transcoder) + + def workflow(self, entry, feed_url, reprocess_action, reprocess_info=None): + ProcessMedia().apply_async( + [entry.id, feed_url, reprocess_action, reprocess_info], {}, + task_id=entry.queued_task_id) diff --git a/mediagoblin/processing/__init__.py b/mediagoblin/processing/__init__.py index 7e05b242..4e5853c1 100644 --- a/mediagoblin/processing/__init__.py +++ b/mediagoblin/processing/__init__.py @@ -257,7 +257,7 @@ class ProcessingManager(object): return processor - def workflow(self): + def workflow(self, entry, feed_url, reprocess_action, reprocess_info=None): """ Returns the Celery command needed to proceed with media processing *This method has to be implemented in all media types* diff --git a/mediagoblin/submit/lib.py b/mediagoblin/submit/lib.py index 08a603e9..402eb851 100644 --- a/mediagoblin/submit/lib.py +++ b/mediagoblin/submit/lib.py @@ -28,7 +28,7 @@ from mediagoblin.tools.response import json_response from mediagoblin.tools.text import convert_to_tag_list_of_dicts from mediagoblin.tools.federation import create_activity, create_generator from mediagoblin.db.models import Collection, MediaEntry, ProcessingMetaData -from mediagoblin.processing import mark_entry_failed +from mediagoblin.processing import mark_entry_failed, get_entry_and_processing_manager from mediagoblin.processing.task import ProcessMedia from mediagoblin.notifications import add_comment_subscription from mediagoblin.media_types import sniff_media @@ -262,10 +262,12 @@ def run_process_media(entry, feed_url=None, :param reprocess_action: What particular action should be run. :param reprocess_info: A dict containing all of the necessary reprocessing info for the given media_type""" + + reprocess_info = reprocess_info or {} + entry, manager = get_entry_and_processing_manager(entry.id) + try: - ProcessMedia().apply_async( - [entry.id, feed_url, reprocess_action, reprocess_info], {}, - task_id=entry.queued_task_id) + manager.workflow(entry, feed_url, reprocess_action, reprocess_info) except BaseException as exc: # The purpose of this section is because when running in "lazy" # or always-eager-with-exceptions-propagated celery mode that -- 2.25.1