aboutsummaryrefslogtreecommitdiffstats
path: root/functest/api/resources/v1/tasks.py
diff options
context:
space:
mode:
Diffstat (limited to 'functest/api/resources/v1/tasks.py')
-rw-r--r--functest/api/resources/v1/tasks.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/functest/api/resources/v1/tasks.py b/functest/api/resources/v1/tasks.py
index f099918f..6bf625a8 100644
--- a/functest/api/resources/v1/tasks.py
+++ b/functest/api/resources/v1/tasks.py
@@ -15,9 +15,11 @@ import errno
import json
import logging
import os
+import pkg_resources
import uuid
from flask import jsonify
+from flasgger.utils import swag_from
from functest.api.base import ApiResource
from functest.api.common import api_utils
@@ -31,6 +33,8 @@ LOGGER = logging.getLogger(__name__)
class V1Task(ApiResource):
""" V1Task Resource class"""
+ @swag_from(pkg_resources.resource_filename(
+ 'functest', 'api/swagger/task.yaml'))
def get(self, task_id): # pylint: disable=no-self-use
""" GET the result of the task id """
try:
@@ -66,6 +70,8 @@ class V1Task(ApiResource):
class V1TaskLog(ApiResource):
""" V1TaskLog Resource class"""
+ @swag_from(pkg_resources.resource_filename(
+ 'functest', 'api/swagger/task_log.yaml'))
def get(self, task_id): # pylint: disable=no-self-use
""" GET the log of the task id """
try:
@@ -80,11 +86,15 @@ class V1TaskLog(ApiResource):
return api_utils.result_handler(status=1, data='No such task id')
task_log_dir = CONST.__getattribute__('dir_results')
+ # pylint: disable=maybe-no-member
+ index = int(self._get_args().get('index', 0))
try:
with open(os.path.join(task_log_dir,
'{}.log'.format(task_id)), 'r') as log_file:
+ log_file.seek(index)
data = log_file.readlines()
+ index = log_file.tell()
except OSError as err:
if err.errno == errno.ENOENT:
return api_utils.result_handler(
@@ -93,7 +103,7 @@ class V1TaskLog(ApiResource):
return api_utils.result_handler(
status=1, data='Error with log file')
- return_data = {'data': data}
+ return_data = {'data': data, 'index': index}
switcher = {'IN PROGRESS': 0, 'FAIL': 1, 'FINISHED': 2}