Merge "Show task result when click the id"

This commit is contained in:
Jenkins 2015-07-16 16:21:57 +00:00 committed by Gerrit Code Review
commit a11b32a216
5 changed files with 58 additions and 3 deletions

View File

@ -67,6 +67,15 @@ def task_list(request, execution_id=None):
return mistralclient(request).tasks.list(execution_id) return mistralclient(request).tasks.list(execution_id)
def task_get(request, task_id=None):
"""Get specific task.
:param task_id: Task ID
"""
return mistralclient(request).tasks.get(task_id)
@handle_errors(_("Unable to retrieve workflows."), []) @handle_errors(_("Unable to retrieve workflows."), [])
def workflow_list(request): def workflow_list(request):
"""Returns all workflows.""" """Returns all workflows."""

View File

@ -24,7 +24,10 @@ from mistraldashboard.default.utils import prettyprint
class TaskTable(tables.DataTable): class TaskTable(tables.DataTable):
id = tables.Column("id", verbose_name=_("ID")) id = tables.Column(
"id",
verbose_name=_("ID"),
link="horizon:mistral:tasks:result")
name = tables.Column("name", verbose_name=_("Name")) name = tables.Column("name", verbose_name=_("Name"))
parameters = tables.Column( parameters = tables.Column(

View File

@ -0,0 +1,13 @@
{% extends 'base.html' %}
{% load i18n %}
{% block title %}{% trans "Task Result" %}{% endblock %}
{% block page_header %}
{% include "horizon/common/_page_header.html" with title=_("Task Result") %}
{% endblock page_header %}
{% block main %}
<div class="detail">
<pre>{{ result }}</pre>
</div>
{% endblock %}

View File

@ -17,9 +17,12 @@
from django.conf.urls import patterns # noqa from django.conf.urls import patterns # noqa
from django.conf.urls import url # noqa from django.conf.urls import url # noqa
from mistraldashboard.tasks.views import IndexView from mistraldashboard.tasks import views
TASKS = r'^(?P<task_id>[^/]+)/%s$'
urlpatterns = patterns( urlpatterns = patterns(
'', '',
url(r'^$', IndexView.as_view(), name='index'), url(r'^$', views.IndexView.as_view(), name='index'),
url(TASKS % 'result', views.ResultView.as_view(), name='result')
) )

View File

@ -14,12 +14,39 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from django.core.urlresolvers import reverse
from django.utils.translation import ugettext_lazy as _
from django.views import generic
from horizon import exceptions
from horizon import tables from horizon import tables
from mistraldashboard import api from mistraldashboard import api
from mistraldashboard.tasks.tables import TaskTable from mistraldashboard.tasks.tables import TaskTable
class ResultView(generic.TemplateView):
template_name = 'mistral/tasks/result.html'
page_title = _("Task Result")
def get_context_data(self, **kwargs):
context = super(ResultView, self).get_context_data(**kwargs)
task = self.get_data(self.request, **kwargs)
context['result'] = task.result
return context
def get_data(self, request, **kwargs):
try:
task_id = kwargs['task_id']
task = api.task_get(request, task_id)
except Exception:
msg = _('Unable to get task "%s".') % task_id
redirect = reverse('horizon:mistral:tasks:index')
exceptions.handle(self.request, msg, redirect=redirect)
return task
class IndexView(tables.DataTableView): class IndexView(tables.DataTableView):
table_class = TaskTable table_class = TaskTable
template_name = 'mistral/tasks/index.html' template_name = 'mistral/tasks/index.html'