diff options
Diffstat (limited to 'functest/api/resources/v1/tasks.py')
-rw-r--r-- | functest/api/resources/v1/tasks.py | 12 |
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} |