diff --git a/app/static/polltask.js b/app/static/polltask.js index bc9d802..8687665 100644 --- a/app/static/polltask.js +++ b/app/static/polltask.js @@ -32,6 +32,8 @@ function pollTask(poll_url, disableTimeout) { if (res.status == "SUCCESS") { console.log("Got result") resolve(res.result) + } else if (res.status == "FAILURE" || res.status == "REVOKED") { + reject() } else { retry() } diff --git a/app/tasks/__init__.py b/app/tasks/__init__.py index 40a824c..fe566b8 100644 --- a/app/tasks/__init__.py +++ b/app/tasks/__init__.py @@ -4,6 +4,12 @@ from celery import Celery from app import app from app.models import * +class TaskError(Exception): + def __init__(self, value): + self.value = value + def __str__(self): + return repr("TaskError: " + self.value) + class FlaskCelery(Celery): def __init__(self, *args, **kwargs): super(FlaskCelery, self).__init__(*args, **kwargs) diff --git a/app/tasks/importtasks.py b/app/tasks/importtasks.py index 7233d87..12b61dd 100644 --- a/app/tasks/importtasks.py +++ b/app/tasks/importtasks.py @@ -4,14 +4,7 @@ import urllib.request from urllib.parse import urlparse, quote_plus from app import app from app.models import * -from app.tasks import celery - -class TaskError(Exception): - def __init__(self, value): - self.value = value - def __str__(self): - return repr(self.value) - +from app.tasks import celery, TaskError class GithubURLMaker: def __init__(self, url): @@ -177,6 +170,7 @@ def getMeta(urlstr, author): @celery.task() def makeVCSRelease(id, branch): release = PackageRelease.query.get(id) + if release is None: raise TaskError("No such release!") diff --git a/app/templates/tasks/view.html b/app/templates/tasks/view.html index d47203f..df980fb 100644 --- a/app/templates/tasks/view.html +++ b/app/templates/tasks/view.html @@ -5,10 +5,10 @@ Working {% endblock %} {% block content %} - {% if "error" in info %} + {% if "error" in info or info.status == "FAILURE" or info.status == "REVOKED" %}
{{ info. error }}
+{{ info.error }}{% else %}