start_time = models.DateTimeField(blank=True, null=True)
finish_time = models.DateTimeField(blank=True, null=True)
command = models.TextField()
+ extension = models.CharField(max_length=8)
pid = models.IntegerField(blank=True, null=True)
result = models.IntegerField(blank=True, null=True)
job = Job()
job.user = request.user
job.command = command
+ job.extension = u'kmz'
job.save()
request.user.info('Request queued as job %s' % job.id)
else:
job = Job()
job.user = request.user
job.command = command
+ job.extension = u'kmz'
job.save()
request.user.info('Request queued as job %s' % job.id)
else:
job = Job()
job.user = request.user
job.command = command
+ job.extension = u'csv'
job.save()
request.user.info('Request queued as job %s' % job.id)
else:
logging.debug('Job %s is running: pid=%s', row[0], row[1])
sys.exit(0)
- sqlexec(u'SELECT id, command FROM job WHERE start_time IS NULL ORDER BY queue_time LIMIT 1')
+ sqlexec(u'SELECT id, command, extension 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.')
sys.exit(0)
- jobid, command = row
+ jobid, command, extension = 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), 'wb')
+ 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})
<tt>{{ job.command }}</tt><br>
{% if job.finish_time %}
Status: <b>Complete</b> in {{ job.process_time }} <br>
-Result: {% if job.result %}Error {{ job.result }}{% else %}Success<br><a href="/job_result/{{ job.id }}" class=button>download</a>{% endif %}<br>
+Result: {% if job.result %}Error {{ job.result }}{% else %}Success<br><a href="/job_result/{{ job.id }}.{{ job.extension }}" class=button>download</a>{% endif %}<br>
{% else %}
{% if job.start_time %}
Status:<b>Running</b> since {{ job.start_time }}<br>