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 }} |
+
+
+
+
+
+
+
+ {{ task_name }}
+
+ {% for element in data %}
+
+ {{forloop.counter}} |
+ {{ element }} |
+
+ {% endfor %}
+
+
+
+
+{% 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)