Minor improvements to the processing panel
authorJoar Wandborg <git@wandborg.com>
Tue, 10 Jul 2012 15:53:37 +0000 (17:53 +0200)
committerJoar Wandborg <git@wandborg.com>
Tue, 10 Jul 2012 16:13:02 +0000 (18:13 +0200)
- It is now possible to actually see what's processing, due to a bug fix
  where __getitem__ was called on the db model.
- Removed DEPRECATED message from the docstring, it wasn't true.

mediagoblin/db/mixin.py
mediagoblin/media_types/video/processing.py
mediagoblin/processing/task.py
mediagoblin/templates/mediagoblin/user_pages/processing_panel.html

index fe6dc796fe054983ee882a80a80544a897b7a2b6..9f9b8786bb80d0e3034d50dfba30a6bf63b169dd 100644 (file)
@@ -116,8 +116,8 @@ class MediaEntryMixin(object):
         """
         Get the exception that's appropriate for this error
         """
-        if self['fail_error']:
-            return common.import_component(self['fail_error'])
+        if self.fail_error:
+            return common.import_component(self.fail_error)
 
     def get_license_data(self):
         """Return license dict for requested license"""
index 5bbcc92f76956340410c5a88a6ac661f3b80f642..85e833521bf22865bcae2c233399b38261530c2d 100644 (file)
@@ -19,13 +19,22 @@ import logging
 
 from mediagoblin import mg_globals as mgg
 from mediagoblin.processing import \
-    create_pub_filepath, FilenameBuilder
+    create_pub_filepath, FilenameBuilder, BaseProcessingFail
+from mediagoblin.tools.translate import lazy_pass_to_ugettext as _
+
 from . import transcoders
 
 _log = logging.getLogger(__name__)
 _log.setLevel(logging.DEBUG)
 
 
+class VideoTranscodingFail(BaseProcessingFail):
+    '''
+    Error raised if video transcoding fails
+    '''
+    general_message = _(u'Video transcoding failed')
+
+
 def sniff_handler(media_file, **kw):
     transcoder = transcoders.VideoTranscoder()
     data = transcoder.discover(media_file.name)
index 901d293b9eba6157c783bddc2e69552798ba7ad6..af815362adca7d9d3c08c250346fd845203ec3cb 100644 (file)
@@ -24,6 +24,8 @@ from mediagoblin.media_types import get_media_manager
 from mediagoblin.processing import mark_entry_failed, BaseProcessingFail
 
 _log = logging.getLogger(__name__)
+logging.basicConfig()
+_log.setLevel(logging.DEBUG)
 
 
 ################################
@@ -32,8 +34,6 @@ _log = logging.getLogger(__name__)
 
 class ProcessMedia(Task):
     """
-    DEPRECATED -- This now resides in the individual media plugins
-
     Pass this entry off for processing.
     """
     def run(self, media_id):
@@ -44,16 +44,21 @@ class ProcessMedia(Task):
         entry = mgg.database.MediaEntry.one(
             {'_id': ObjectId(media_id)})
 
+        _log.info('Running task {0} on media {1}: {2}'.format(
+            self.name,
+            entry._id,
+            entry.title))
+
         # Try to process, and handle expected errors.
         try:
             #__import__(entry.media_type)
             manager = get_media_manager(entry.media_type)
             _log.debug('Processing {0}'.format(entry))
             manager['processor'](entry)
-        except BaseProcessingFail, exc:
+        except BaseProcessingFail as exc:
             mark_entry_failed(entry._id, exc)
             return
-        except ImportError, exc:
+        except ImportError as exc:
             _log.error(
                 'Entry {0} failed to process due to an import error: {1}'\
                     .format(
index 655498601337f16a982b92fb9515b486efdf5c91..e868456b1462925d83cba730f868979029e62c25 100644 (file)
 {% if processing_entries.count() %}
   <table class="media_panel processing">
     <tr>
+      <th>ID</th>
       <th>Title</th>
       <th>When submitted</th>
       <th>Status</th>
     </tr>
     {% for media_entry in processing_entries %}
       <tr>
+        <td>{{ media_entry._id }}</td>
         <td>{{ media_entry.title }}</td>
         <td>{{ media_entry.created.strftime("%m-%d-%Y %I:%M %p") }}</td>
         <td></td>
 
   <table class="media_panel failed">
     <tr>
+      <th>ID</th>
       <th>Title</th>
       <th>When submitted</th>
       <th>Reason for failure</th>
+      <th>Failure metadata</th>
     </tr>
     {% for media_entry in failed_entries %}
       <tr>
+        <td>{{ media_entry._id }}</td>
         <td>{{ media_entry.title }}</td>
-        <td>{{ media_entry['created'].strftime("%m-%d-%Y %I:%M %p") }}</td>
+        <td>{{ media_entry.created.strftime("%m-%d-%Y %I:%M %p") }}</td>
+        {% if media_entry.get_fail_exception() %}
         <td>{{ media_entry.get_fail_exception().general_message }}</td>
+        <td>{{ media_entry.fail_metadata }}</td>
+        {% else %}
+        <td>&nbsp;</td>
+        <td>&nbsp;</td>
+        {% endif %}
       </tr>
     {% endfor %}
   </table>