Skip to content
Snippets Groups Projects
Commit 6f8cef26 authored by Patrick Jentsch's avatar Patrick Jentsch
Browse files

Map task states to job status. Colorize status badges on dashboard.

parent 267f86d3
No related branches found
No related tags found
No related merge requests found
......@@ -25,7 +25,7 @@ def ocr():
"--skip-binarisation"],
"lang": new_ocr_job_form.language.data,
"version": new_ocr_job_form.version.data}),
status="submitted",
status="pending",
title=new_ocr_job_form.title.data)
db.session.add(ocr_job)
db.session.commit()
......@@ -74,7 +74,7 @@ def nlp():
service_args=json.dumps({"args": [],
"lang": new_nlp_job_form.language.data,
"version": new_nlp_job_form.version.data}),
status="submitted",
status="pending",
title=new_nlp_job_form.title.data)
db.session.add(nlp_job)
db.session.commit()
......
......@@ -101,16 +101,19 @@ class Swarm:
' Poll the service until the job is completly executed.
'''
session = self.Session()
job.status = 'running'
session.add(job)
session.commit()
current_state = None
while True:
current_state = service.tasks()[0].get('Status').get('State')
if job.status != current_state:
job.status = current_state
session.add(job)
session.commit()
if current_state == 'complete':
if current_state == 'complete' or current_state == 'failed':
break
time.sleep(1)
service.reload()
job.status = current_state
session.add(job)
session.commit()
session.close()
# Remove the service from the swarm.
service.remove()
......
......@@ -58,17 +58,27 @@
</div>
</li>
{% for job in current_user.jobs.all() %}
{% if job.service == 'nlp' %}
{% set service_icon = 'format_textdirection_l_to_r' %}
{% elif job.service =='ocr' %}
{% set service_icon = 'find_in_page' %}
{% else %}
{% set service_icon = 'help' %}
{% endif %}
{% if job.status == 'pending' %}
{% set badge_color = 'amber' %}
{% elif job.status =='running' %}
{% set badge_color = 'indigo' %}
{% elif job.status =='complete' %}
{% set badge_color = 'teal' %}
{% else %}
{% set badge_color = 'red' %}
{% endif %}
<li class="collection-item avatar">
<i class="material-icons circle">
{% if job.service == 'nlp' %}
format_textdirection_l_to_r
{% elif job.service =='ocr' %}
find_in_page
{% else %}
help
{% endif %}
</i>
<span class="new badge teal" data-badge-caption="">{{ job.status }}</span>
<i class="material-icons circle">{{ service_icon }}</i>
<span class="new badge {{ badge_color }}" data-badge-caption="">{{ job.status }}</span>
<span class="title">{{ job.title }}</span>
<p>{{ job.description }}</p>
</li>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment