diff --git a/server/website/website/templates/pipeline_data.html b/server/website/website/templates/pipeline_data.html new file mode 100644 index 0000000..bbe276c --- /dev/null +++ b/server/website/website/templates/pipeline_data.html @@ -0,0 +1,43 @@ +{% extends "base.html" %} + +{% block body %} + +
+ + + + + + + + + + + + + + + + + + + + +

Pipeline Data Info

ID:
{{ id }}
Creation Time:
{{ creation_time }}
Task Name:
{{ task_name }}
Workload:
{{ workload }}
+
+ +
+ + + + {% for element in data %} + + + + + {% endfor %} + +

{{ task_name }}

{{forloop.counter}}
{{ element }}
+
+ +{% endblock body %} diff --git a/server/website/website/urls.py b/server/website/website/urls.py index 1d54c70..7d67637 100644 --- a/server/website/website/urls.py +++ b/server/website/website/urls.py @@ -80,7 +80,10 @@ urlpatterns = [ # Test url(r'^test/create/', website_views.create_test_website, name='create_test_website'), - url(r'^test/pipeline/', website_views.pipeline_data_ready, name='pipeline_data_ready') + url(r'^test/pipeline/', website_views.pipeline_data_ready, name='pipeline_data_ready'), + + # Pipeline data + url(r'^pipeline/data/(?P[0-9]+)', website_views.pipeline_data_view, name='pipeline_data_view') ] if settings.DEBUG: diff --git a/server/website/website/views.py b/server/website/website/views.py index f0b8614..a6ab667 100644 --- a/server/website/website/views.py +++ b/server/website/website/views.py @@ -42,10 +42,10 @@ from .db import parser, target_objectives from .forms import NewResultForm, ProjectForm, SessionForm, SessionKnobForm from .models import (BackupData, DBMSCatalog, ExecutionTime, Hardware, KnobCatalog, KnobData, MetricCatalog, MetricData, PipelineRun, Project, Result, Session, - SessionKnob, User, Workload) + SessionKnob, User, Workload, PipelineData) from .tasks import train_ddpg from .types import (DBMSType, KnobUnitType, MetricType, - TaskType, VarType, WorkloadStatusType, AlgorithmType) + TaskType, VarType, WorkloadStatusType, AlgorithmType, PipelineTaskType) from .utils import (JSONUtil, LabelUtil, MediaUtil, TaskUtil) from .settings import LOG_DIR, TIME_ZONE, CHECK_CELERY @@ -949,6 +949,19 @@ def download_debug_info(request, project_id, session_id): # pylint: disable=unu return response +@login_required(login_url=reverse_lazy('login')) +def pipeline_data_view(request, pipeline_id): + pipeline_data = PipelineData.objects.get(pk=pipeline_id) + task_name = PipelineTaskType.TYPE_NAMES[pipeline_data.task_type] + data = JSONUtil.loads(pipeline_data.data) + context = {"id": pipeline_id, + "workload": pipeline_data.workload, + "creation_time": pipeline_data.creation_time, + "task_name": task_name, + "data": data} + return render(request, "pipeline_data.html", context) + + @login_required(login_url=reverse_lazy('login')) def tuner_status_view(request, project_id, session_id, result_id): # pylint: disable=unused-argument res = Result.objects.get(pk=result_id)