replace job extension by a friendly filename.
[ais.git] / bin / jobrunner.py
index 065808beed8f0f802037d88c781754f1c7189d7b..577fabc7b27bc85f350edc0971d709e94a5feca7 100755 (executable)
@@ -7,6 +7,7 @@ __all__ = [ \
 
 import sys
 import os
+import os.path
 import time
 import logging
 import subprocess
@@ -46,19 +47,20 @@ def runjob():
         logging.debug('Job %s is running: pid=%s', row[0], row[1])
         return 1
 
-    sqlexec(u'SELECT id, command, extension, user_id FROM job WHERE start_time IS NULL ORDER BY queue_time LIMIT 1')
+    sqlexec(u'SELECT id, command, friendly_filename, user_id FROM job WHERE start_time IS NULL ORDER BY queue_time LIMIT 1')
     row = get_common_cursor().fetchone()
     if row is None:
         logging.debug('Queue is empty.')
         return 0
 
-    jobid, command, extension, user_id = row
+    jobid, command, friendly_filename, user_id = row
     logging.info('Starting job %s: %s', jobid, command)
 
     sqlexec(u'UPDATE job SET start_time=now() WHERE id=%(jobid)s', {'jobid': jobid})
     dbcommit()
 
-    output = file('/var/lib/ais/jobs/'+unicode(jobid)+'.'+extension, 'wb')
+    extension = os.path.splitext(friendly_filename)[-1]
+    output = file('/var/lib/ais/jobs/'+unicode(jobid)+extension, 'wb')
     p = subprocess.Popen(command, stdout=output, shell=True)
     logging.debug('System process id = %s', p.pid)
     sqlexec(u'UPDATE job SET pid=' + unicode(p.pid) + ' WHERE id=%(jobid)s', {'jobid': jobid})